#2 - Quality


ソフトウェアエンジニアリングの目標

  • ユーザーのニーズを満たす予算内で、品質ソフトウェア
  • をタイムリーに生産する.
  • ソフトウェアの品質と生産性の向上
  • システムと製品の品質と生産効率を向上させる
  • ビジネスパフォーマンスの向上
  • 品質洞察力

  • は絶対的な
  • ではありません
  • 多次元
  • 制約(人、お金、時間、ツール)の影響を受ける
  • 許容可能な妥協
  • について
  • 品質規格は独立していない
  • なぜソフトウェアの品質が他の品質と異なるのですか?

  • は物理的に存在する
  • ではない
  • 初期顧客名が不正確な
  • 時間の推移に伴い、NIZは
  • 変化した.
  • ハードウェアとソフトウェアの急速な変化
  • 顧客の
  • に対する期待値が高い

    しつりょうぶんるい


    ユーザー、スポンサー、メンテナ

    代表的な品質


    1.正確性


    プログラムは機能の説明に従って良好に運行する
    この前提の下で
    ->システムの詳細

    2.信頼性


    製品の故障の頻度とリスクを測定する
    統計定義
    ->MTTF(平均故障時間):起動(修復)から故障までの平均運転時間
    平均無故障時間(MTBF):故障から次の故障までの平均運転時間

    3.堅牢性


    堅牢で耐久性があり、要求仕様で予期せぬ状況でも正常に動作

    信頼性と正確性の関係



    4.パフォーマンス


    =効率(メモリ、応答時間)


    システムの可用性に影響
    評価は次の3つに分けられます.
    1.測定(モニタ)
    2.分析
    3.シミュレーション
    プロセスへのパフォーマンスの適用->生産性
    パフォーマンス=生産性

    パフォーマンス評価はいつ必要ですか?

    분석, 설계 단계에서.

    5.使いやすさ


    個人環境に適応するためのシステムの構成と調整を容易に

    6.検証


    セキュリティの検証
    可能な限りテスト

    7.保守性

  • 連携エラー修正
  • アダプティブ・メンテナンス
  • オペレーティング・システムの変化に対応
  • ターゲットコード再構造化
  • 予防措置-イベントが発生する前に検査を行う
    ->最近では、保守の代わりにソフトウェアの進化が行われています.
    保守性には、次の2つがあります.

    1.修正可能性

  • 有限作業量修復可能システム欠陥
  • モジュール化が得意=メンテナンス性↑
  • 適切なツールによって改善する:HL、PL、CASEなど
  • 信頼性との関係:欠陥を修復する時間↓長ければ長いほど→使用時間↑仮面→信頼性↑

  • 知らない質問.

    2.進化性

  • ソフトウェアは時間の経過とともに
  • を修正する.
  • は大きくて複雑なソフトウェアにとって重要です
  • 新リリースで
  • 減少
  • シリーズとソフトウェアアーキテクチャは
  • の発展を促進した.

    8.再利用


    既存のコンポーネントを使用した新製品の作成

    再利用レベル

  • 要求
  • 設計
  • コード
    ->コードは再利用できません.
  • 異なるレベルでの再使用
    モジュール->関数->ソフトウェア->システム

    9.携帯性


    他の環境で実行できる場合
  • ハードウェアプラットフォーム
  • ソフトウェアプラットフォーム
  • モジュール化による実装

    10.理解性


    内部製品の品質
    「オブジェクト向けのパターン」は分かりやすいと言います
    抽象化とモジュール化の強化
    関係の維持:

    11.相互運用性


    システムが他のシステムと共存し、協力する能力
    インタフェースの標準化

    12.生産性


    効率と性能の面で、ソフトウェアの生産過程の品質
    測定が困難:
    1. SLOC : Source lines of code
    2. FP : Function Point

    13.タイムリー


    製品をタイムリーに納品する能力
    必要:
    1.慎重なスケジュール
    2.正確な作業予測
    3.指定したマイルストンを明確にする(どれだけの現状を記録したか)

    14.可視性


    すべてのフェーズと現在のステータスがドキュメント化されている場合は、表示されます.
    1.モジュールの集合を使用して明確な構造化を行う.
    2.明確に理解する機能
    3.使用可能かつ正確な文書の使用

    15.安全性


    悪意のある攻撃や他のハッカーのリスクからソフトウェアを保護する考えを実現しました.
    セキュリティ・ホール:
    1.接近可能:攻撃者が入手可能
    2.悪用可能:攻撃者によるダメージ

    16.セキュリティ


    ソフトウェアセキュリティ:ソフトウェアリスクから遠ざかる
    ソフトウェアリスクとは?事故を前提とした条件
    ソフトウェアのセキュリティを測定する方法

    Quality Requirements in Specific Application Areas


    1. Information Systems


    データの保存と取得
    品質:
  • データ整合性
  • セキュリティ
  • データ可用性
  • スループット
  • ユーザの使いやすさ
  • .
    ex)銀行システム、図書館カタログシステム

    2. Real-time Systems


    予め定義された厳格な期限内に応答する
    OSレベルのスケジュール:
  • 分機
  • 優先度
  • 品質:
  • 応答時間要求
  • セキュリティ
  • ex)工場監視システム、ミサイル誘導システム、マウス制御ソフト

    3. Distributed Systems


    並列化と通信
    分布図:
  • データ
  • 制御
  • ハードウェア
  • 品質:
  • システム可用性
  • コードモビリティ
  • ex)クライアント/サーバシステムのミドルウェア、グループウェア

    4. Embedded Systems


    ソフトウェアは多くのコンポーネントの1つです.
    エンドユーザーに対するインタフェースがありません.
    品質:
  • 信頼性
  • 適応性
  • メモリ、パフォーマンス効率
  • ex)飛行機、ロボット、電子レンジ、食器洗い機、自動車

    人工知能/機械学習における品質は既存のソフトウェアとは根本的に異なる。


    パッケージ化とモジュール化の違い:
    예를 들어 신경망은 단순히 더 작은 서브넷으로 절단되어 모듈로 재사용될 수 없다.
    優先順位…?
    모델을 실행하는 알고리즘은 훈련 및 테스트에 사용되는 데이터보다 훨씬 덜 중요한 역할을 한다.

    6つの質量特性

  • 機能性-これはソフトウェアに必要な機能ですか?
  • 信頼性—ソフトウェアの信頼性はどれくらいですか?
  • 可用性-ソフトウェアは使いやすいですか?
  • 有効性-ソフトウェアの有効性はどうですか?
  • Maintanability-どれだけ修正しやすいですか?
  • 移植性–ソフトウェアは他の環境に簡単に移行できますか?
    特徴を満たし、サブ特徴も満たす.
  • 機能–コンプライアンス、正確性、相互運用性、コンプライアンス、セキュリティ
  • 信頼性-成熟度、フォールトトレランス、リカバリ性
  • 可用性-理解可能、学習可能、操作性
  • 効率-時間行動、資源行動
  • 永続性-分析性、変更性、信頼性、テスト性
  • Portability-適応性、設置性、適用性、交換性
  • なぜソフトウェアの品質が重要ですか?

    품질은 사용자의 니즈 충족과 직결되기 때문이다.

    メンテナンス性のsw品質をどのように測定しますか?

    올바른 모듈화