軟件設計基礎理論

丁二玉

  • 出版商: 機械工業
  • 出版日期: 2024-08-01
  • 售價: $294
  • 貴賓價: 9.5$279
  • 語言: 簡體中文
  • 頁數: 206
  • ISBN: 7111760387
  • ISBN-13: 9787111760382
  • 立即出貨 (庫存 < 3)

相關主題

商品描述

軟件設計是軟件開發的核心活動,軟件設計理論的發展推動著軟件工程的發展。本書梳理了基礎的軟件設計理論,可幫助讀者更好地理解各種軟件設計技術。全書共分為5章,第1章介紹軟件設計基礎原則;第2章介紹程序設計,幫助讀者深刻認識程序設計工作背後的機理,而不是僅僅停留在掌握一門或幾門程序設計語言上;第3章介紹覆雜軟件設計,重點包括模塊化設計、信息隱藏與設計原則;第4章介紹軟件設計方法學,指導讀者用系統化、規範化的方式開展軟件設計活動,解決軟件設計問題;第5章介紹大規模軟件系統設計,關註可靠性、效率、可移植性、市場特性、人員與分工等各種要素。&lt;br />本書適合作為軟件工程相關專業本科生和研究生的教材,也可作為軟件領域相關技術人員的參考書。

作者簡介

丁二玉,曾任職南京大學軟件學院教師、院長助理,主講軟件需求工程和軟件設計課程。先後多次獲得國家級、省部級教學獎項,出版著作多部。近些年創立源圖品牌,從事軟件產業的人才數字化管理工作,包括崗位勝任力定義、能力測評、個性化培養、人才畫像與盤點等,成功服務於數十家國內頭部金融企業和數百家軟件企業。

目錄大綱

前言
第1章 軟件設計基礎原則
1.1 什麽是軟件設計
1.1.1 設計是一種“規劃”
1.1.2 軟件的材料載體與廣義的軟件設計內涵
1.1.3 狹義的軟件設計內涵
1.2 為什麽要進行軟件設計
1.3 覆雜度控制的關鍵之一:設計分層
1.3.1 分層抽象方法
1.3.2 軟件設計的分層
1.3.3 設計層次驗證
1.3.4 軟件設計分層要點
1.3.5 產品設計與工程設計
1.4 覆雜度控制的關鍵之二:關註點分離
1.4.1 分離設計主題
1.4.2 多視點方法
1.5 軟件設計的目標與衡量標準
1.5.1 根本標準:功能、質量、審美
1.5.2 設計目標和衡量標準應用示例
1.5.3 功能是設計方案的必備特徵
1.5.4 質量是工程設計的重點
1.5.5 審美是超越合格達到優秀的路徑
1.5.6 軟件設計的結果是一種折中與妥協
1.6 外部表現與內部結構
1.6.1 軟件設計的重點是堅固、優雅的內部結構
1.6.2 外部表現和內部結構的區分示例
1.6.3 抽象、分解與層次結構
1.6.4 常見的設計對象及其外部表現和內部結構
1.6.5 設計整個系統時區分外部表現和內部結構
1.6.6 設計模塊時區分外部表現和內部結構
1.6.7 設計類時區分外部表現和內部結構
1.6.8 設計數據結構時區分外部表現和內部結構
1.6.9 設計代碼時區分外部表現和內部結構
1.7 邏輯設計與物理設計
1.7.1 載體介質及其匹配
1.7.2 區分邏輯設計與物理設計
1.7.3 設計數據類型時邏輯設計與物理設計的失配
1.7.4 設計數據結構時邏輯設計與物理設計的失配
1.7.5 設計面向對象機制時邏輯設計與物理設計的失配
1.7.6 設計模塊時邏輯設計與物理設計的失配
1.7.7 設計質量時邏輯設計與物理設計的失配
1.8 軟件設計是持續決策的過程
1.8.1 設計結果與設計過程
1.8.2 決策的要素
1.8.3 設計是一個跳躍性過程,驗證設計是一個推理過程
1.8.4 選擇一個可行答案,沒有唯一正確答案
1.8.5 設計決策有順序影響,而且影響不可逆
1.8.6 設計約束:是友非敵
1.9 工程與藝術
1.9.1 工程設計與藝術設計
1.9.2 理性主義與經驗主義
1.9.3 設計兼具科學性與藝術性
1.10 總結
第2章 程序設計
2.1 如何保證程序正確性
2.1.1 像設計硬件一樣設計軟件嗎
2.1.2 測試不能保證正確性
2.1.3 用程序設計方法實現正確性
2.2 結構化編程與功能正確性
2.2.1 使用簡單結構—三種控制結構
2.2.2 使用塊結構組織覆雜代碼
2.2.3 兼顧正確性與覆雜度控制:函數/方法
2.3 數據抽象、類型與數據操作正確性
2.3.1 類型
2.3.2 結構化類型:強正確性保證
2.3.3 非結構化類型:弱正確性保證
2.3.4 覆雜抽象數據類型(數據結構)及其質量
2.4 程序契約與正確性
2.4.1 前置條件與後置條件
2.4.2 不變量
2.4.3 程序契約的局限性
2.5 面向對象編程與可覆用性
2.5.1 可覆用性需要的出現
2.5.2 面向對象編程與可覆用性
2.5.3 類和對象
2.5.4 封裝
2.5.5 繼承
2.5.6 多態
2.6 軟件構造與更多代碼質量
2.6.1 什麽是軟件構造
2.6.2 軟件構造技術與代碼質量
2.6.3 軟件構造技術示例
2.7 總結
第3章 覆雜軟件設計
3.1 控制更高的覆雜度需要模塊
3.1.1 模塊
3.1.2 模塊分解質量與模塊化、信息隱藏
3.2 模塊化
3.2.1 模塊分割的質量考慮
3.2.2 理想中的模塊分割—完全獨立
3.2.3 現實中的模塊分割—低耦合、高內聚
3.2.4 代碼組織及聯系方式分析
3.3 (結構化)函數/方法之間的耦合
3.3.1 內容耦合
3.3.2 公共耦合
3.3.3 控制耦合
3.3.4 印記耦合
3.3.5 數據耦合
3.3.6 隱式的耦合
3.3.7 函數/方法之間的耦合小結
3.4 (結構化)函數/方法的內聚
3.4.1 偶然內聚
3.4.2 邏輯內聚
3.4.3 時間內聚
3.4.4 過程內聚
3.4.5 通信內聚
3.4.6 順序內聚
3.4.7 功能內聚
3.4.8 函數/方法的內聚小結
3.5 (面向對象)類/對象之間的耦合
3.5.1 類/對象之間的耦合類型
3.5.2 方法之間的耦合
3.5.3 成員變量產生的耦合
3.5.4 隱藏組件耦合
3.5.5 分散組件耦合
3.5.6 明確組件耦合
3.5.7 修改型繼承耦合
3.5.8 改進型繼承耦合
3.5.9 擴展型繼承耦合
3.5.10 繼承的降耦合作用
3.5.11 繼承的弱點:靈活性
3.5.12 類/對象之間的耦合小結
3.6 (面向對象)類/對象的內聚
3.7 覆雜模塊的耦合與內聚
3.7.1 覆雜模塊之間的耦合
3.7.2 覆雜模塊的內聚
3.8 按功能設計與