日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实用软件工程(张海藩)复习笔记

發(fā)布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实用软件工程(张海藩)复习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

軟件工程復習

?

(內容有出入,某些按自己理解簡寫)


1-2章 軟件工程概述,可行性研究及需求分析


  • 軟件工程三要素:方法、過程和工具

  • 軟件工程研究的內容:方法與技術、工具與環(huán)境、管理技術、標準與規(guī)范

  • 軟件危機的主要原因是:軟件本身的特點以及開發(fā)方法

  • 軟件生命周期:可行性研究,需求分析,軟件設計,編碼,軟件測試,軟件維護

  • 軟件生命周期模型:

    瀑布模型模型簡單,執(zhí)行容易,但無法適應變更
    快速原型模型完成的功能往往是最終產(chǎn)品能完成的功能的子集
    增量模型將待開發(fā)的軟件系統(tǒng)模塊化和組件化
    螺旋模型每個階段前增加一個風險分析
    噴泉模型體現(xiàn)面向對象軟件開發(fā)過程迭代和無縫的特性
  • 軟件過程是軟件開發(fā)活動的集合。

  • 數(shù)據(jù)流圖(DFD)是進行軟件需求分析的常用工具,基本的圖形符號是加工、數(shù)據(jù)流、數(shù)據(jù)存儲和外部實體。

  • 在需求分析中建模方法:數(shù)據(jù)流圖(DFD),狀態(tài)轉換圖(STD),實體關系圖(ER),控制流圖(CFD)

  • 需求分析中主要描述手段:DFD,數(shù)據(jù)字典,加工說明

  • 軟件工程需求分析階段:分析系統(tǒng)的數(shù)據(jù)要求,確定系統(tǒng)的功能需求,確定軟件系統(tǒng)的性能要求

  • 需求分析的主要方法有結構化分析方法(SA),考慮數(shù)據(jù)和處理的需求分析。

  • 軟件需求規(guī)格說明書的內容包括:對重要功能的描述,對數(shù)據(jù)的要求,軟件的性能

  • 需求規(guī)格說明書不可以作為軟件可行性研究的依據(jù)。

  • 軟件危機的主要表現(xiàn)是軟件產(chǎn)品的質量低劣,開發(fā)生產(chǎn)軟件效率低下


  • 第3-5章 ? 軟件設計,編碼實現(xiàn),測試和維護


  • 面向數(shù)據(jù)流的軟件設計模式可將 數(shù)據(jù)流 映射軟件結構。

  • 軟件模塊的獨立性由內聚性和耦合性來衡量:

    內聚性:模塊的功能強度(模塊內各元素之間彼此結合得緊密程度)

    耦合性:模塊間相連程度的度量。

    ? 在軟件設計時,應該提高模塊的內聚程度,高內聚低耦合。

    ? 耦合程度 小 —>大 : 數(shù)據(jù),控制,公共,內容。

  • Jackson方法是根據(jù) 數(shù)據(jù)結構 導出程序結構。

  • 在面向數(shù)據(jù)流的軟件設計方法中,一般將信息流分為變換流和事務流。

  • 軟件實現(xiàn)將軟件設計的結構翻譯成一種程序設計語言的代碼。

  • 軟件測試的目的是為了發(fā)現(xiàn)軟件的錯誤(找出軟件中所有的錯誤是不可能的)

  • 白盒法又稱為邏輯覆蓋法,主要用于單元測試。

    ? 白盒測試要對系統(tǒng)內部結構工作原理有一個清楚的了解。

    ? 白盒測試有多種技術:代碼檢查法,基本路徑測試,邏輯覆蓋測試。

    ? 白盒測試是根據(jù)程序的 內部邏輯 來設計測試用例的。

  • 黑盒測試又稱為功能測試,主要關注功能的實現(xiàn)。

    ? 黑盒測試又分為:等價類劃分法,邊界值分析法,錯誤推斷法,因果圖法,決策表法,場景法等。

  • 下面給出黑盒測試與白盒測試的差別。

    黑盒測試白盒測試
    不涉及程序結構考察程序邏輯結構
    軟件規(guī)格說明書生成測試用例程序結構信息生成測試用例
    可適用于從單元測試到系統(tǒng)驗收測試主要適用于單元測試和集成測試
    某些代碼段得不到測試對所有邏輯路徑進行測試
    用戶觀點測試管理者角度測試
  • 成功的測試需要在運行測試用例發(fā)現(xiàn)程序的錯誤

  • 軟件集成測試交給不屬于該軟件開發(fā)組的軟件設計人員承擔,可以提高集成測試的效果。

  • 集成測試的主要方法有:漸增式測試方法,非漸增式測試方法。

  • 軟件測試的目的是盡可能發(fā)現(xiàn)軟件中的錯誤,通常單元測試是代碼編寫階段可進行的測試,它是整個測試工作的基礎

  • 單元測試不能完成的測試是系統(tǒng)功能。

  • 軟件維護的副作用—修改軟件而造成的錯誤(Bug越改越多)

  • 影響軟件可維護性的主要因素:可修改性,可測試性,可理解性

  • 測試用例由輸入數(shù)據(jù)預期輸出結構兩部分組成。

  • 功能測試是系統(tǒng)測試的主要內容,檢查系統(tǒng)的功能、性能是否與需求規(guī)格說明相同。

  • 劃分模塊雖然可以降低軟件設計的復雜性和工作量,但是會增加軟件成本。

  • 軟件設計說明書不是軟件概要設計的主要成果。

  • 第6-7章 ? 面向對象和UML,面向對象軟件設計和實現(xiàn)


  • 面向對象技術中,對象是類的實例,對象有三種成分:封裝,屬性,方法

  • 面向對象特征:多態(tài)性,繼承性,封裝性,對象唯一性,抽象性。

  • 面向對象模型主要包括: 對象模型(o)、動態(tài)模型(d)、功能模型(f)。

  • 封裝把對象的屬性和操作結合在一起,構成一個獨立的對象。

    內部信息對外界隱藏,外界只能通過接口與對象發(fā)生聯(lián)系。

  • 關聯(lián)是建立 之間的關系。

  • 所有的對象可以成為各種對象類,每個對象類都定義了一組方法

  • 通過執(zhí)行對象的操作可以改變獨享的屬性,但它必須通過消息的傳遞。

  • UML是軟件開發(fā)中的一個重要工具,它主要應用于基于對象的面向對象方法。

  • UML圖:

    • 用例圖
    • 靜態(tài)圖:類圖,對象圖
    • 行為圖:狀態(tài)圖,活動圖
    • 交互圖:順序圖,協(xié)作圖
    • 實現(xiàn)圖:構件圖,部署圖
    UML 圖功能
    用例圖從用戶使用系統(tǒng)的角度描述系統(tǒng)功能的圖形表達方法
    類圖表達系統(tǒng)類及其相互聯(lián)系的圖(面向對象設計的核心)
    對象圖對象是類的實例,對象間連接是類之間關聯(lián)的實例
    狀態(tài)圖描述一個特定對象的所有可能狀態(tài)和引起狀態(tài)轉換的事件
    順序圖描述對象之間的動態(tài)交互關系,著重表現(xiàn)對象間消息傳遞的時間順序
    活動圖活動圖描動作及動作間關系
    協(xié)作圖描述相互協(xié)作的對象間的交互關系和鏈接關系
    構件圖描述軟件構件間的依賴關系
    部署圖描述處理器、硬件設備和軟件構件運行時的構架
  • 面向對象分析首先要建立 問題的對象模型

  • 面向對象分析階段建立的模型中,核心是對象(生活中也是)。

  • 面向對象的動態(tài)模型中,每張狀態(tài)圖表示某一個類的動態(tài)行為。

  • 動態(tài)模型著重于系統(tǒng)的邏輯控制,它包括事件追蹤圖狀態(tài)圖

  • 對象模型的描述工具是對象圖

  • 功能模型中的數(shù)據(jù)流圖(DFD),往往形成一個層次結構。

  • 面向對象設計階段的主要任務是系統(tǒng)設計對象設計

  • 只有類的共有界面的成員才能成為使用類的操作,這是軟件設計的信息隱藏原則。

  • 對象的屬性集合是它的特征表示。

  • 面向對象程序設計語言不同于其他語言的主要特點是繼承性

  • 面向對象的測試與傳統(tǒng)測試方法的主要區(qū)別是測試對象不同

  • 面向對象分析與設計活動是一個多次反復迭代的過程。


  • 第8章 ?軟件工程管理


  • 軟件工程針對維護工作的主要目標是:提高軟件的可維護性,降低維護的工作量。

  • 度量的作用是為有效地、定量地進行軟件工程過程管理。

  • LOC和FP是兩種不同的估算技術 ,兩者對分解所需要的詳細程度不同。

  • 風險管理過程:規(guī)劃,識別 ,評估

  • 按照人家配置管理的原始指導思想,受控制的對象應該是軟件配置項

  • 常用的評估軟件質量的因素:可理解性,可靠性,可維護性

  • 基線是通過了正式復審的軟件配置項(基線形成前可以快速修改)。

  • 使用軟件時提出增加新功能就必須進行完善性維護。

  • 軟件文檔不僅是軟件開發(fā)各階段的重要依據(jù),也影響軟件的可維護性。

  • 影響軟件維護的主要因素:可修改性,可測試性,可理解性

  • CMM表示軟件過程成熟度模型(Capability Maturity Model Integration)。

  • 代碼行技術是比較簡單的估算軟件規(guī)模的方法。

  • 前面沒有提到的一些重點問題


  • 敏捷軟件開發(fā)過程的核心價值觀:
    • 個體與交互勝于流程與工具

    • 可工作的軟件勝于面面俱到的文檔

    • 客戶協(xié)作勝于合同談判

    • 響應變化勝于遵循計劃

  • 如何理解需求分析的作用和重要性。 需求分析的難點在哪里?
    • 作用:避免需求中的錯誤,高效發(fā)開軟件。

    • 重要性:能減少軟件開發(fā)費用,提高軟件質量,確保軟件開發(fā)的正常進行。

    • 難點:

      • 用戶和開發(fā)人員間存在交流障礙
      • 用戶對需求的陳述不完整
  • 簡述結構化分析方法的基本思想,其建模方法有哪些?
    • 基本思想: 對于一個復雜的系統(tǒng),按照其內部數(shù)據(jù)的流動和處理過程,采用“抽象”和“分解”的手段,首先“抽象”得到系統(tǒng)的高層邏輯模型,之后采用自頂向下逐步求精的方法,對系統(tǒng)邏輯模型逐層不斷“分解”細化,直到不能再細化為止,即可得到系統(tǒng)最底層的詳細邏輯模型。對系統(tǒng)結構化分析的成果通常采用數(shù)據(jù)流圖和數(shù)據(jù)字典來表示。
    • 建模方法:數(shù)據(jù)流圖(DFD),狀態(tài)轉換圖(STD),實體關系圖(ER),控制流圖(CFD)。
  • 簡述軟件設計的 7 條啟發(fā)式規(guī)則?
    • 改進軟件結構提高模塊獨立性
    • 模塊規(guī)模應該適中
    • 深度、寬度、扇出和扇入應適當
    • 模塊的作用域應該再控制域之內
    • 降低模塊結構的復雜度
    • 設計單出入口的模塊
    • 模塊功能應能預測
  • 要形成良好的編碼風格可以從哪些方面做起?
    • 程序內部文檔
    • 數(shù)據(jù)說明
    • 語句構造
    • I/O
    • 效率
  • 在選擇編程語言時,要考慮哪些因素?
    • 項目的應用范圍
    • 用戶的要求
    • 軟件開發(fā)人員的愛好和能力
    • 系統(tǒng)的可移植性要求
    • 算法和數(shù)據(jù)結構的復雜性
    • 平臺支持
  • 面向對象設計的準則?
    • 模塊化

    • 抽象

    • 信息隱藏

    • 弱耦合

    • 強內聚

    • 可重用

    • 簡述面向對象測試策略的特點。
      • 面向對象的單元測試
      • 面向對象的集成測試
      • 面向對象的確認測試
  • 目前項目開發(fā)時常用的小組組織方法有哪些?
    • 民主制程序員組
    • 主程序員組
    • 現(xiàn)代程序員組。
  • 簡述軟件文檔的意義?合格的軟件工程文檔的特性?
    • 意義:在軟件開發(fā)工作中具有突出的地位和相當?shù)墓ぷ髁俊?/li>
    • 特性:
      • 及時性
      • 完整性
      • 實用性
      • 規(guī)范性
      • 結構化
      • 簡潔性
  • 什么是軟件質量?軟件質量保證措施有哪些?
    • 軟件質量:軟件與明確地和隱含地定義的需求相一致的程度。
    • 措施:
      • 正式技術復審
      • 程序正確性證明
  • 什么是模塊化?模塊化有什么好處?
    • 模塊化:開發(fā)具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊。
    • 好處:
      • 有效模塊化的軟件容易開發(fā)
      • 容易測試和維護

    一些習題


    • 旅行社把預訂機票的旅客信息(姓名、年齡、單位、身份證號碼、旅行時間及目的地等)輸入機票預訂系統(tǒng)。系統(tǒng)為旅客安排航班,打印出取票通知單(附有應付的賬款)。旅客在飛機起飛的前一天憑取票通知單交款取票,系統(tǒng)檢驗無誤,輸出機票給旅客。
      請畫出系統(tǒng)的頂層數(shù)據(jù)流圖、0 層數(shù)據(jù)流圖。

    • 某高校學籍管理系統(tǒng)用于各個學院對每一位學生的入學、畢業(yè)、每學期考試成績、升留級等事項進行處理,包括錄入學生基本信息、存儲學生基本情況例如,學生各科成績等;查詢學生各科成績、單科成績;打印學生名單、學生成績單;統(tǒng)計班平均成績、各科平均成績;根據(jù)分數(shù)進行升留級處理等功能。 具體描述:

      學籍管理系統(tǒng)細分為錄入、存儲處理、查詢處理,升留級處理和統(tǒng)計處理。

      (1)錄入、存儲處理首先對學生信息進行審查,如果是新生,則錄入、存儲新生的信息。并寫入學生記錄文件;否則,從學生成績文件中讀該學生的各科成績,輸出學生記錄表及成績單。

      (2)查詢處理接收學生學號和課程號,并進行有效性檢查,如無效,則拒絕接受;否則按照查詢要求從學生成績文件中讀取成績并打印成績單。

      (3)升留級處理接收學生成績,并從成績標準文件中讀取信息,判斷該學生是否升級,形成升留級名單,并更新學生記錄。

      (4)統(tǒng)計處理接收學生記錄,根據(jù)統(tǒng)計選擇進行班平均成績和各科平均成績的統(tǒng)計,形成相應的統(tǒng)計表。

      請畫出該學籍管理系統(tǒng)的三層數(shù)據(jù)流圖。

    • 某高校學生檔案管理系統(tǒng)的主要功能有:

      (1)對學生檔案信息的增加、刪除和修改;

      (2)對學生信息的查詢和打印;

      (3)對學生信息的統(tǒng)計和打印;

      (4)此外,本系統(tǒng)還應該能與其它系統(tǒng)共享部分數(shù)據(jù)。

      請畫出此系統(tǒng)的頂層數(shù)據(jù)流圖、0 層數(shù)據(jù)流圖。

    • 某高校學生檔案管理系統(tǒng)的主要功能有:

      (1)對學生檔案信息的增加、刪除和修改;

      (2)對學生信息的查詢和打印;

      (3)對學生信息的統(tǒng)計和打印;

      (4)此外,本系統(tǒng)還應該能與其它系統(tǒng)共享部分數(shù)據(jù)。

      請設計出學生檔案管理軟件的系統(tǒng)結構圖。

    • 在自動飲料售貨機中,除了買飲料的顧客,還有以下活動者:

      (1) 供應商,向自動飲料售貨機添加飲料

      (2) 收銀員,從自動飲料售貨機收錢。

      后面兩類人在使用自動飲料售貨機時,都涉及打開和關閉該機器。請畫出它們的用例圖。

    某校圖書管理系統(tǒng)具有以下功能:

    (1)借書:先為讀者辦理借書證,借書證上記錄讀者姓名、學號、所屬系和班級等信息。

    借書時根據(jù)讀者的借書證查閱讀者檔案,若借書數(shù)目未超過規(guī)定數(shù)量,則辦理借閱手續(xù),修

    改庫存記錄及讀者檔案;若超過規(guī)定數(shù)量則不予借閱。

    (2)還書:根據(jù)讀者書中的條形碼,修改庫存記錄及讀者檔案,若借閱時間超過規(guī)定期限

    則罰款。

    (3)圖書管理員還要定期生成訂書清單,包括書名、圖書代號、單價、數(shù)量等,根據(jù)需要

    向供應商訂購圖書。

    總結

    以上是生活随笔為你收集整理的实用软件工程(张海藩)复习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。