F-nameのブログ

はてなダイアリーから移行し、更に独自ドメイン化しました。

ソフトウェアの品質(ソフトウェア工学第2回)

オブジェクト指向はよく分からなかった。勉強し直す必要が。

 

中谷多哉子。中島震。ソフトウェアの品質。ソフトウェア工学の工学の意味。今回は実際に開発されるソフトウェアの品質。オブジェクト指向。
ソフトウェアの品質。9126。ISO。国際標準化機構。ICE。国際電子標準会議。25000シリーズで内容が更新、9126が91年。25000シリーズ、スクエアシリーズとも。要求と評価。日本公共規格から日本語版が。原本に当たることも重要。
スクエアの内、用語の定義を。品質モデル、クオリティモデル。品質評価の枠組み。品質要求を仕様書に書いたり。製品品質モデルなどに分類、ソフトウェアの品質。クオリティ。明示的ニーズや暗黙のニーズを満たす。勝手な思い込み?発注者や要求者が持つニーズ。明文化されていない。ビジネスルールなど常識は違う。要求工学では技術も研究。まだまだ分類されていないものも。実際にどういう品質があるか。評価も分からない。個々のソフトウェアの品質特性。ソフトウェア品質に影響を及ぼす属性を分類。機能要求の一覧。ソフトウェア品質との関係。非機能要求。設計や開発言語など制約も含まれる、非機能要求の方が広い概念。開発制約。要求工学では要求を抽出したり検証したり。形容的に計測し表現する技術。継続して使えないと可用性が低下する。品質モデルを構成する品質特性。利用時の品質モデル。有効性効率性リスク回避性など。状況を全て網羅するのは難しい。利用する状況の全体集合は定義できない。障害などのリスクが小さい。
製品品質モデル。機能適合性、補完性など。使用性。使いやすさ。作り込んでいくこと。定量的に計測する。誤り件数。覚えるための学習時間。習得性。全ての機能を使えるように。アクセスビリティ。どのように作れば品質要求を満足できるか。Square。サイバーセキュリティが。
ソフトウェア開発では評価するための品質モデル。中間成果物。文書としても内容が。設計通りに作られたプログラムを。複数のモジュールから。モジュールの品質を評価。凝集度と結合度。ソフトウェア工学の文献を読む時のガイドに。英語の用語を知っていると翻訳での混乱を避けることが出来る。凝集度。データと機能がどのようにまとめられているか。大きいほうが品質が高い。凝集度は高いほうが良いモジュール。結合度。他のモジュールにどのように依存しているか。低いほうが良い。逆に必要な機能やデータが外にあると。必要なものも不要なものも取り込むと。凝集度は1つのモジュールに入るように。凝集度が高くて結合度が低いことと品質の関係。そのモジュールだけ取り出して再利用するのが容易。他のモジュールと一緒だと再利用性が低い。データと手続きが1つになっているので理解性が高まる。使おうとした品質。プログラムの品質を向上。バグを発見し修正する時の影響。あるモジュールにバグが。修正した際の影響を。新たなバグにもなる。結合度が高いのは影響が他に及ぶ。凝集度が低いと不具合を改修するのに他のモジュールにも。作業の生産性を低下。具体的な種類。凝集度。好ましい順。設計で目指すべき。情報的に凝集。複数の機能が参照する情報データがまとめられている。個々の機能は呼び出し口インターフェースを持つ。モジュールが提供する機能はデータ構造を参照。オブジェクト指向は後で。機能的凝集。逐次的凝集など。偶発的凝集は設計上の明確な意図もなく。良くない。凝集度が低いものを作るべきで無いとも言えない。再利用がなければ問題は少ない。使い捨てのプロトタイプは時間を注ぐ必要はない。速く作ることが。色々な目的で、一律に品質が高くなくても良い。結合度。無結合。一切関わりを持たない。巨大なモジュールを作る人も。2000行。他のモジュールが200行。不具合は1つのモジュールを探せば良い。保守で顔色を変える。ワンプレート。なんでも混ざる。ワンプレートでカツカレー。凝集度が高い。結合度には好ましい結合の順に。共通結合など。内容的結合度。悪い結合の仕方。共通結合や外部結合を解消する。データを新たなモジュールに取り込む。データ結合。スタンプ結合。オブジェクトを。データベース。SQLに送られる。データ結合。ファイルの読み込み。禁止されたアクセスが出来ないように管理。モジュールの結合の仕方。どういう使い方をすれば。値の範囲など。サービスの呼び出し。郵便の重さや入れない物を入れたり。呼び出しにも様々な制約が。サービスの以来。内容が該当すれば責任を持って。契約に基づく設計。サービス提供側が示す契約。事前条件が満たされたもとでサービスを依頼。サービスの呼び出し。メイヤー。アサーション。Javaの言語仕様にも。品質向上に。事前条件と事後条件。
オブジェクト指向。歴史。80年代に流れがまとまる。それまでの問題を解く。パラダイムと言う人も。分析や設計やプログラムの仕様。80年代の初め。コンピュータ雑誌。バイトマガジン。プログラミング言語の特集。Smalltalk。オブジェクト指向の発展の経緯は大変面白い。オブジェクト指向の情報は限定されていた。ワクワクした感覚。オブジェクト指向の起源は60年代。ダールなど。シミュレーション上の。効率的に作るには。セマンティックGap。表したい対象とプログラムの表現が対応しない。どのようなデータを用いて表現するか。負荷が大きい。オブジェクトが実装。同席束縛。実行時に実行するモジュールを決定。処理を進めるとともにオブジェクトが不要に。オブジェクト間のリンクを張り直したり。無駄なメモリー領域を自動的に開放する。ガベージコレクション。ゴミ集め。メモリはかなり小さかった。処理系でも使われる。オブジェクトのクラスの概念。フレームの構造とも近い。人間の知識をコンピュターに入れる。特定の目的のために。人工知能、データベースからの要請。オブジェクトの構造を持つものにアクセス。データベース。生産性が数倍になり効率性も高まるという夢。カプセル化。凝集度を高めるなどのモジュールの構造。クラス、継承。新しい用語が技術者にとりハードルになるが。オブジェクト。他のオブジェクトに送信受信。Message。コンピュター内とのセマンティックGap。仕事の依頼をメッセージとして。擬人化で理解。オブジェクトとは処理を実行する主体。手続きと参照するデータを持っている。オブジェクトが持つデータ。属性などを表す。生年月日だったり。年齢は幾つですか?生年月日と今日の日付から計算。他のオブジェクトからメッセージを。インターフェース。抽象化。あれ、これ、具体的事物に対し理解。これをコンピュターの世界で。オブジェクトとクラス。Windowを例に。それぞれのWindowはオブジェクト。クラスが中に。機能がクラスにより定義。操作に対応。オブジェクトの属性値が変更。メッセージとして伝わる。画像の変更という形で伝わる。メソッド。データ構造として定義。Windowの大きさなどが属性。情報的凝集度を説明する役者が揃う。データをつかって様々な処理を。メソッドやデータ構造が。組にしてカプセル化。新しいWindowを。メモリ領域を確保。クラスに定義されているメソッド。リンクがあればメッセージを受け取る事ができる。動的束縛。あれば複数に同じものがあれば個別のクラスに。継承。親クラスのメソッドを利用できる。再利用性を高める。品質も向上する。仮想性。動的束縛による。オブジェクト指向は最近のプログラム言語を勉強するのに必要。

 

ソフトウェア工学 (放送大学大学院教材)

ソフトウェア工学 (放送大学大学院教材)