軟件工程筆記之期末復習(簡答)

 2023-12-25 阅读 40 评论 0

摘要:軟件工程筆記一、問題定義1. 軟件的定義(產品):2. 軟件的分類:3. 軟件工程方法學:4. 軟件危機:5. 產生軟件危機的原因:6. 消除軟件危機的途徑:7. 軟件工程的定義:8. 軟件工程的三要素:9. 軟件過程模型:10. 軟件生命周期&#x

軟件工程筆記

  • 一、問題定義
    • 1. 軟件的定義(產品):
    • 2. 軟件的分類:
    • 3. 軟件工程方法學:
    • 4. 軟件危機:
    • 5. 產生軟件危機的原因:
    • 6. 消除軟件危機的途徑:
    • 7. 軟件工程的定義:
    • 8. 軟件工程的三要素:
    • 9. 軟件過程模型:
    • 10. 軟件生命周期:
  • 二、可行性研究
    • 1. 邏輯模型:
    • 2. 可行性研究的過程實質:
    • 3. 研究每種解法的可行性:
  • 三 、需求分析
    • 1. 分析模型:
    • 2. 從哪些方面驗證軟件需求的正確性:
    • 3. 采用自頂向下逐層分解,*抽象、分解*
    • 4. 分析方法:
  • 四、總體設計
    • 1. 什么是總體設計:
    • 2. 設計原理:
    • 3. 指導思想:
    • 4. 耦合:
    • 5. 內聚:
    • 6. 層次圖:
    • 7. HIPO:
    • 8. 結構圖(SC):
  • 五、詳細設計
    • 1. 什么是結構化設計?
    • 2. 人機界面設計:
    • 3. 過程設計的工具:
    • 4. 程序復雜度:
    • 5. 流圖(程序圖):
  • 六、實現
    • 1. 軟件測試準則:
    • 2. 黑盒測試(功能測試) :
    • 3. 白盒測試(結構測試):
    • 4. 測試步驟:
    • 5. 調試途徑:
  • 七、維護
  • 八、面向對象方法學
    • 1. 面向對象思想:
    • 2. 模型:
    • 3. 面向對象的核心特征:
    • 4. 抽象是面向對象領域發現類的主要方法:
    • 5. 面向對象方法指導思想:
    • 6. 活動圖和流程圖的區別:
    • 7. 時序圖:
  • 九、面向對象設計
    • 1. 設計準則:
    • 2. 面向對象設計中最主要的工作:

一、問題定義

1. 軟件的定義(產品):

軟件= 程序十數據十文檔

  • 程序: 按事先設計的功能和性能需求執行的指令序列
  • 數據: 是程序能正常操縱信息的數據結構
  • 文檔: 與程序開發、維護和使用有關的圖文材料

2. 軟件的分類:

  • (按軟件功能)
  1. 系統軟件
  2. 支撐軟件
  3. 應用軟件

3. 軟件工程方法學:

  • 傳統方法學(結構化方法)
  • 面向對象方法學

4. 軟件危機:

軟件危機:在計算機軟件的開發和維護 過程遇到的一系列嚴重問題

5. 產生軟件危機的原因:

  • 客觀原因:軟件本身特點
  1. 邏輯部件
  2. 規模龐大
  • 主觀原因:不正確的開發方法
  1. 忽視需求分析
  2. 錯誤認為: 軟件開發=程序編寫
  3. 輕視軟件維護

6. 消除軟件危機的途徑:

  • 軟件工程:適網于大型、復雜、多人協作開發的情形,“化繁為簡”。

7. 軟件工程的定義:

定義:(1)應用系統化的、學科化的、定量的方法,來開始、運行和維護軟件,即將工程應用到軟件。
(2)對(1)中各種方法的研究。
目標:(易維護性)在給定的時間和預算內,按照用戶的需求,開發易修改、高效、可靠、可維護、適應性強、可移動,可重用的軟件。

8. 軟件工程的三要素:

方法、工具、過程

9. 軟件過程模型:

  • 傳統軟件過程模型
  1. 瀑布模型:自上而下,相互銜接的固定次序。線性模型,強調文檔;
  2. 原型模型:目標不明確;
  3. 增量模型:需求可能發生變化,具有較大風險,希望盡早進入市場;
  • 現代軟件過程模型
  1. 基于構件的開發模型
  2. 統一過程模型
  3. 敏捷開發過程
  • 如何選擇過程模型
  1. 如何選擇
  2. 案例分析

10. 軟件生命周期:

問題定義->可行性研究->需求分析->總體設計->詳細設計->編碼->測試->維護

二、可行性研究

(確定問題是否值得去解決)

1. 邏輯模型:

  1. 系統流程圖(數據在系統各個部件中的加工過程)
  2. 數據流圖 (基本功能)自頂向下,逐步分層
  3. 數據字典(數據信息)

2. 可行性研究的過程實質:

可行性研究的過程實質上是 壓縮簡化的系統分析和設計的過程

3. 研究每種解法的可行性:

  1. 技術可行性
  2. 經濟可行性
  3. 操作可行性

三 、需求分析

(做什么?)
結構化分折法是面向數據流的分析方法
明確系統的功能;
對目標系統提出 完整、準確、清晰、具體的要求;

1. 分析模型:

  • 數據模型(E-R圖)(數據庫) :相對穩定的
  • 功能模型(數據流):描述系統功能
  • 行為模型(狀態轉換圖):通過描繪系統的狀態 以及引起系統狀態轉換的事件,表示系統的行為
    方框層次圖、IPO圖

2. 從哪些方面驗證軟件需求的正確性:

  1. 一致性
  2. 完整性
  3. 現實性
  4. 有效性

3. 采用自頂向下逐層分解,抽象、分解

4. 分析方法:

  1. 結構化分析方法(SA)
  2. 面向對象分析方法(OOA)

四、總體設計

1. 什么是總體設計:

總體設計又稱(概要設計或者初步設計),主要解決怎么做?系統如何實現

2. 設計原理:

  1. 模塊化
  2. 抽象
  3. 逐步求精
  4. 信息隱藏和局部化
  5. 模塊獨立

3. 指導思想:

高內聚,低耦合

4. 耦合:

  • 數據耦合(盡量使用)
  • 控制耦合(少用,分解)
  • 特征耦合(少用)
  • 公共環境耦合(限制使用)
  • 內容耦合(禁止使用)

5. 內聚:

  • 低內聚 :
  1. 偶然內聚
  2. 邏輯內聚
  3. 時間內聚
  • 中內聚:
  1. 過程內聚
  2. 通信內聚
  • 高內聚:
  1. 順序內聚
  2. 功能內聚

6. 層次圖:

上層調用下層
矩形框 – 模塊
連線 – 調用關系

7. HIPO:

帶編號的層次圖

8. 結構圖(SC):

五、詳細設計

具體實現

1. 什么是結構化設計?

如果一個程序的代碼塊僅僅通過順序、選擇、循環3種基本控制結構進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。

2. 人機界面設計:

認識用戶、色彩搭配、設計問題、設計指南、設計過程
設計問題:

  1. 系統響應時間
  2. 用戶幫助設施
  3. 出錯信息處理
  4. 命令交互

3. 過程設計的工具:

  1. 程序流程圖(結構或非結構化)
  2. 盒圖(結構化)又稱為N-S圖
  3. PAD圖(問題分析圖) (結構化)
  4. 判定表
  5. 判定樹
  6. Jackson圖

4. 程序復雜度:

McCabe方法

5. 流圖(程序圖):

六、實現

(編碼和測試)
注釋行的數量占整個源程序的1/5~1/3

1. 軟件測試準則:

  1. 早開始
  2. Pareto原理 (2、8原則)80%錯誤由程序中20%模塊造成
  3. 從小到大 小規模一大規模
  4. 充分覆蓋,
  5. 第三方測試

2. 黑盒測試(功能測試) :

  1. 等價類劃分法
  2. 邊界值分析法
  3. 錯誤猜測法
  4. 因界圖法

3. 白盒測試(結構測試):

  1. 邏輯覆蓋法
  2. 路徑測試法
  3. (冒煙測試)

4. 測試步驟:

單元測試-> 集成測試-> 系統測試->驗收測試
集成測試分為:自頂向下和自底向上
自頂向下分析分為:深度優先 和 廣度優先

5. 調試途徑:

  1. 蠻干法
  2. 回溯法
  3. 原因排除法(對分查找法、歸納法、演繹法)

七、維護

八、面向對象方法學

(面向對象分析方法)

1. 面向對象思想:

數據和處理封裝在一起

2. 模型:

模型工具功能
對象模型類圖(靜態圖)做事情的實體
動態模型什么時候做?
功能模型用例圖做什么

3. 面向對象的核心特征:

封裝、 繼承、多態

4. 抽象是面向對象領域發現類的主要方法:

5. 面向對象方法指導思想:

面向對象方法指導思想————軟件系統是由多個對象組成,對象間通過消息相互交流,共同協作,以完成系統功能

6. 活動圖和流程圖的區別:

活動圖:著重描述的是對象活動的順關系所遵循的規則,是面向對象的 ,描述系統的行為
流程圖:著重描述的是處理過程,是面向過程的;

7. 時序圖:

時序圖是交互圖的一種,可以動態驗證類模型的可行性。

九、面向對象設計

系統設計
對象設計

1. 設計準則:

  1. 模塊化
  2. 抽象
  3. 信息隱藏
  4. 弱耦合
    (1)交互耦合
    (2)繼承耦合
  5. 強內聚
    (1)服務內聚:一個服務完成一個功能
    (2)類內聚:一個類完成一個用途
    (3)一般-特殊內聚
  6. 可重用

2. 面向對象設計中最主要的工作:

面向對象設計中最主要的工作是建立對象模型、然后通過動態模型功能模型去完善對象的操作(服務)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/196815.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息