軟件工程

軟件開發(fā)生命周期

  1. 軟件定義時(shí)期:包括可行性研究和詳細(xì)需求分析過程
  2. 軟件開發(fā)時(shí)期:軟件的設(shè)計(jì)與實(shí)現(xiàn)
  3. 軟件運(yùn)行和維護(hù)

軟件系統(tǒng)文檔

  • 用戶文檔:描述系統(tǒng)功能和使用方法
  • 系統(tǒng)文檔:描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測試等各方面的內(nèi)容

軟件系統(tǒng)工具

  • 軟件開發(fā)工具:需求分析工具、設(shè)計(jì)工具、編碼和排錯(cuò)工具
  • 軟件維護(hù)工具:版本控制工具、文檔分析工具、開發(fā)信息庫工具、逆向工程工具、再工程工具
  • 軟件管理和軟件支持工具:項(xiàng)目管理工具、配置管理工具、軟件評價(jià)工具、軟件開發(fā)工具的評價(jià)和選擇

軟件設(shè)計(jì)

四個(gè)活動(dòng)

  • 數(shù)據(jù)設(shè)計(jì)
  • 架構(gòu)(體系結(jié)構(gòu))設(shè)計(jì)
  • 人機(jī)界面(接口)設(shè)計(jì)
  • 過程設(shè)計(jì)

能力成熟度模型

CMM(能力成熟度模型)

CMM(Capability Maturity Model) 是一個(gè)用于評估和改進(jìn)軟件開發(fā)過程成熟度的模型。最初由美國卡內(nèi)基梅隆大學(xué)軟件工程研究所(SEI)提出,主要用于軟件開發(fā)過程的改進(jìn),后來發(fā)展為 CMMI(能力成熟度模型集成),應(yīng)用范圍更廣。CMM 將軟件開發(fā)過程的成熟度劃分為五個(gè)級別,每個(gè)級別代表更高水平的過程優(yōu)化和控制能力。

1. 初始級(Initial,Level 1)

  • 過程是無序的、不可預(yù)測的,依賴個(gè)人能力。
  • 成功取決于個(gè)人英雄主義,而不是組織的標(biāo)準(zhǔn)化流程。
  • 項(xiàng)目可能會(huì)超預(yù)算、延期,質(zhì)量難以保證。

2. 可重復(fù)級(Repeatable,Level 2)

  • 組織建立了基本的項(xiàng)目管理流程,能夠重復(fù)過去成功的經(jīng)驗(yàn)。
  • 采用軟件項(xiàng)目管理實(shí)踐,如需求管理、配置管理、質(zhì)量保證等。
  • 過程可重復(fù),但仍然依賴于具體項(xiàng)目或個(gè)人,可能缺乏一致性。

3. 已定義級(Defined,Level 3)

  • 組織已制定和文檔化標(biāo)準(zhǔn)的軟件開發(fā)過程,并在全組織范圍內(nèi)執(zhí)行。
  • 過程標(biāo)準(zhǔn)化,不同項(xiàng)目遵循統(tǒng)一的方法,減少依賴個(gè)人經(jīng)驗(yàn)。
  • 強(qiáng)調(diào)軟件工程管理和組織級的過程改進(jìn)。

4. 已管理級(Managed,Level 4)

  • 組織使用量化數(shù)據(jù)監(jiān)控和控制軟件開發(fā)過程,關(guān)鍵過程變量(如質(zhì)量、生產(chǎn)率)可預(yù)測。
  • 過程績效的度量和分析成為核心,數(shù)據(jù)驅(qū)動(dòng)決策,減少過程的變異性。
  • 目標(biāo)是提升可預(yù)測性,提高軟件產(chǎn)品質(zhì)量。

5. 優(yōu)化級(Optimizing,Level 5)

  • 組織持續(xù)優(yōu)化軟件開發(fā)過程,能夠自適應(yīng)變更,持續(xù)改進(jìn)。
  • 采用先進(jìn)的技術(shù)和方法,如根因分析、缺陷預(yù)防、過程自動(dòng)化等。
  • 關(guān)注創(chuàng)新,持續(xù)提升生產(chǎn)率和質(zhì)量。

敏捷模型

開發(fā)宣言:個(gè)體和交互勝過過程和工具、可以工作的軟件勝過面面俱到的文檔、客戶合作勝過合同談判、響應(yīng)變化勝過遵循計(jì)劃

逆向工程

軟件的逆向工程是分析程序,力圖在比源代碼更高抽象層次上建立程序的表示過程,逆向工程是程序的恢復(fù)過程。逆向工程的四個(gè)級別

  1. 實(shí)現(xiàn)級
  2. 結(jié)構(gòu)級
  3. 功能級
  4. 領(lǐng)域級

其中,領(lǐng)域級抽象級別最高,完備性最低,實(shí)現(xiàn)級抽象級別最低,完備性最高

內(nèi)聚程度

系統(tǒng)設(shè)計(jì)

系統(tǒng)設(shè)計(jì)的主要目的:為系統(tǒng)制定藍(lán)圖,在各種技術(shù)和實(shí)施方法中權(quán)衡利弊,精心設(shè)計(jì),合理地使用各種資源,最終勾畫出新系統(tǒng)的詳細(xì)設(shè)計(jì)方法
系統(tǒng)設(shè)計(jì)方法:結(jié)構(gòu)化設(shè)計(jì)方法、面向?qū)ο笤O(shè)計(jì)方法
系統(tǒng)設(shè)計(jì)的主要內(nèi)容:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)
概要設(shè)計(jì)基本任務(wù):又成為系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì),是將系統(tǒng)的功能需求分配給軟件模塊,確定每個(gè)模塊的功能和調(diào)用關(guān)系,形成軟件的模塊結(jié)構(gòu)圖,即系統(tǒng)結(jié)構(gòu)圖,產(chǎn)出概念設(shè)計(jì)說明書
詳細(xì)設(shè)計(jì)基本任務(wù):模塊內(nèi)詳細(xì)算法設(shè)計(jì)模塊內(nèi)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫的物理設(shè)計(jì)其他設(shè)計(jì)(代碼、輸入/輸出格式、用戶界面)、編寫詳細(xì)設(shè)計(jì)說明書,評審
系統(tǒng)設(shè)計(jì)基本原理:抽象化、自頂而下,逐步求精、信息隱蔽(封裝)、模塊獨(dú)立(高內(nèi)聚低耦合)
系統(tǒng)設(shè)計(jì)原則:保持模塊的大小適中、盡可能減少調(diào)用的深度、多扇入少扇出(扇入:其他模塊調(diào)用我,扇出:我調(diào)用其他模塊)、單入口單出口、模塊的作用域應(yīng)該在模塊之內(nèi)、功能應(yīng)該是可預(yù)測的
系統(tǒng)結(jié)構(gòu)圖(SC):又稱為模塊結(jié)構(gòu)圖,它是軟件概要設(shè)計(jì)階段的工具,反應(yīng)系統(tǒng)的功能實(shí)現(xiàn)和模塊之間的聯(lián)系與通信,包括各模塊之間的層次結(jié)構(gòu),即反映了系統(tǒng)的總體結(jié)構(gòu)

內(nèi)聚性

針對單個(gè)模塊,內(nèi)聚程度

內(nèi)聚程度

耦合性

針對模塊之間,耦合程度

耦合程度

詳細(xì)設(shè)計(jì)

基本步驟:

  1. 分析并確定**輸入/輸出數(shù)據(jù)的邏輯結(jié)構(gòu)
  2. 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)單元
  3. 按一定的規(guī)則由輸入、輸出的數(shù)據(jù)結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)
  4. 列出基本操作與條件,并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)為止
  5. 用偽代碼寫出程序

詳細(xì)設(shè)計(jì)的表示工具有圖形工具、表格工具語言工具。其中圖形工具有業(yè)務(wù)流圖程序流程圖、PAD圖、NS流程圖

  • 程序流程圖:又稱為程序框圖。用方框表示一個(gè)處理步驟,菱形表示一個(gè)邏輯條件,箭頭表示控制流向。其優(yōu)點(diǎn)是:結(jié)構(gòu)清晰易于理解、易于修改。其缺點(diǎn)是:只能**描述執(zhí)行過程而不能描述有關(guān)的數(shù)據(jù)
  • NS流程圖:又稱為盒圖。是一種強(qiáng)制使用結(jié)構(gòu)化構(gòu)造的圖示工具,也稱為方框圖。其具有以下特點(diǎn):功能域明確、不可能任意轉(zhuǎn)移控制、很容易確定局部和全局?jǐn)?shù)據(jù)的作用域、很容易表示嵌套關(guān)系及模塊的層次關(guān)系
  • PAD圖:一種改進(jìn)的圖形描述方式,可以用來取代程序流程圖,相比程序流程圖更直觀,結(jié)構(gòu)更清晰。其最大的優(yōu)點(diǎn)是能夠反應(yīng)和描述自頂向下的歷史和過程。PAD圖提供了5種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用

人機(jī)界面設(shè)計(jì)

三大黃金原則

  1. 置于用戶控制之下
  2. 減少用戶的記憶負(fù)擔(dān)
  3. 保持界面的一致性
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容