实用软件工程(张海藩)复习笔记
軟件工程復(fù)習(xí)
?
(內(nèi)容有出入,某些按自己理解簡(jiǎn)寫(xiě))1-2章 軟件工程概述,可行性研究及需求分析
軟件工程三要素:方法、過(guò)程和工具。
軟件工程研究的內(nèi)容:方法與技術(shù)、工具與環(huán)境、管理技術(shù)、標(biāo)準(zhǔn)與規(guī)范。
軟件危機(jī)的主要原因是:軟件本身的特點(diǎn)以及開(kāi)發(fā)方法。
軟件生命周期:可行性研究,需求分析,軟件設(shè)計(jì),編碼,軟件測(cè)試,軟件維護(hù)。
軟件生命周期模型:
| 瀑布模型 | 模型簡(jiǎn)單,執(zhí)行容易,但無(wú)法適應(yīng)變更 |
| 快速原型模型 | 完成的功能往往是最終產(chǎn)品能完成的功能的子集 |
| 增量模型 | 將待開(kāi)發(fā)的軟件系統(tǒng)模塊化和組件化 |
| 螺旋模型 | 每個(gè)階段前增加一個(gè)風(fēng)險(xiǎn)分析 |
| 噴泉模型 | 體現(xiàn)面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性 |
軟件過(guò)程是軟件開(kāi)發(fā)活動(dòng)的集合。
數(shù)據(jù)流圖(DFD)是進(jìn)行軟件需求分析的常用工具,基本的圖形符號(hào)是加工、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)和外部實(shí)體。
在需求分析中建模方法:數(shù)據(jù)流圖(DFD),狀態(tài)轉(zhuǎn)換圖(STD),實(shí)體關(guān)系圖(ER),控制流圖(CFD)。
需求分析中主要描述手段:DFD,數(shù)據(jù)字典,加工說(shuō)明。
軟件工程需求分析階段:分析系統(tǒng)的數(shù)據(jù)要求,確定系統(tǒng)的功能需求,確定軟件系統(tǒng)的性能要求。
需求分析的主要方法有結(jié)構(gòu)化分析方法(SA),考慮數(shù)據(jù)和處理的需求分析。
軟件需求規(guī)格說(shuō)明書(shū)的內(nèi)容包括:對(duì)重要功能的描述,對(duì)數(shù)據(jù)的要求,軟件的性能。
需求規(guī)格說(shuō)明書(shū)不可以作為軟件可行性研究的依據(jù)。
軟件危機(jī)的主要表現(xiàn)是軟件產(chǎn)品的質(zhì)量低劣,開(kāi)發(fā)生產(chǎn)軟件效率低下。
第3-5章 ? 軟件設(shè)計(jì),編碼實(shí)現(xiàn),測(cè)試和維護(hù)
面向數(shù)據(jù)流的軟件設(shè)計(jì)模式可將 數(shù)據(jù)流 映射軟件結(jié)構(gòu)。
軟件模塊的獨(dú)立性由內(nèi)聚性和耦合性來(lái)衡量:
內(nèi)聚性:模塊的功能強(qiáng)度(模塊內(nèi)各元素之間彼此結(jié)合得緊密程度)
耦合性:模塊間相連程度的度量。
? 在軟件設(shè)計(jì)時(shí),應(yīng)該提高模塊的內(nèi)聚程度,高內(nèi)聚低耦合。
? 耦合程度 小 —>大 : 數(shù)據(jù),控制,公共,內(nèi)容。
Jackson方法是根據(jù) 數(shù)據(jù)結(jié)構(gòu) 導(dǎo)出程序結(jié)構(gòu)。
在面向數(shù)據(jù)流的軟件設(shè)計(jì)方法中,一般將信息流分為變換流和事務(wù)流。
軟件實(shí)現(xiàn)將軟件設(shè)計(jì)的結(jié)構(gòu)翻譯成一種程序設(shè)計(jì)語(yǔ)言的代碼。
軟件測(cè)試的目的是為了發(fā)現(xiàn)軟件的錯(cuò)誤(找出軟件中所有的錯(cuò)誤是不可能的)
白盒法又稱(chēng)為邏輯覆蓋法,主要用于單元測(cè)試。
? 白盒測(cè)試要對(duì)系統(tǒng)內(nèi)部結(jié)構(gòu)和工作原理有一個(gè)清楚的了解。
? 白盒測(cè)試有多種技術(shù):代碼檢查法,基本路徑測(cè)試,邏輯覆蓋測(cè)試。
? 白盒測(cè)試是根據(jù)程序的 內(nèi)部邏輯 來(lái)設(shè)計(jì)測(cè)試用例的。
黑盒測(cè)試又稱(chēng)為功能測(cè)試,主要關(guān)注功能的實(shí)現(xiàn)。
? 黑盒測(cè)試又分為:等價(jià)類(lèi)劃分法,邊界值分析法,錯(cuò)誤推斷法,因果圖法,決策表法,場(chǎng)景法等。
下面給出黑盒測(cè)試與白盒測(cè)試的差別。
| 不涉及程序結(jié)構(gòu) | 考察程序邏輯結(jié)構(gòu) |
| 用軟件規(guī)格說(shuō)明書(shū)生成測(cè)試用例 | 用程序結(jié)構(gòu)信息生成測(cè)試用例 |
| 可適用于從單元測(cè)試到系統(tǒng)驗(yàn)收測(cè)試 | 主要適用于單元測(cè)試和集成測(cè)試 |
| 某些代碼段得不到測(cè)試 | 對(duì)所有邏輯路徑進(jìn)行測(cè)試 |
| 從用戶觀點(diǎn)測(cè)試 | 從管理者角度測(cè)試 |
成功的測(cè)試需要在運(yùn)行測(cè)試用例發(fā)現(xiàn)程序的錯(cuò)誤。
軟件集成測(cè)試交給不屬于該軟件開(kāi)發(fā)組的軟件設(shè)計(jì)人員承擔(dān),可以提高集成測(cè)試的效果。
集成測(cè)試的主要方法有:漸增式測(cè)試方法,非漸增式測(cè)試方法。
軟件測(cè)試的目的是盡可能發(fā)現(xiàn)軟件中的錯(cuò)誤,通常單元測(cè)試是代碼編寫(xiě)階段可進(jìn)行的測(cè)試,它是整個(gè)測(cè)試工作的基礎(chǔ)。
單元測(cè)試不能完成的測(cè)試是系統(tǒng)功能。
軟件維護(hù)的副作用—修改軟件而造成的錯(cuò)誤(Bug越改越多)
影響軟件可維護(hù)性的主要因素:可修改性,可測(cè)試性,可理解性。
測(cè)試用例由輸入數(shù)據(jù)和預(yù)期輸出結(jié)構(gòu)兩部分組成。
功能測(cè)試是系統(tǒng)測(cè)試的主要內(nèi)容,檢查系統(tǒng)的功能、性能是否與需求規(guī)格說(shuō)明相同。
劃分模塊雖然可以降低軟件設(shè)計(jì)的復(fù)雜性和工作量,但是會(huì)增加軟件成本。
軟件設(shè)計(jì)說(shuō)明書(shū)不是軟件概要設(shè)計(jì)的主要成果。
第6-7章 ? 面向?qū)ο蠛蚒ML,面向?qū)ο筌浖O(shè)計(jì)和實(shí)現(xiàn)
面向?qū)ο蠹夹g(shù)中,對(duì)象是類(lèi)的實(shí)例,對(duì)象有三種成分:封裝,屬性,方法。
面向?qū)ο筇卣?#xff1a;多態(tài)性,繼承性,封裝性,對(duì)象唯一性,抽象性。
面向?qū)ο竽P椭饕?#xff1a; 對(duì)象模型(o)、動(dòng)態(tài)模型(d)、功能模型(f)。
封裝把對(duì)象的屬性和操作結(jié)合在一起,構(gòu)成一個(gè)獨(dú)立的對(duì)象。
內(nèi)部信息對(duì)外界隱藏,外界只能通過(guò)接口與對(duì)象發(fā)生聯(lián)系。
關(guān)聯(lián)是建立 類(lèi) 之間的關(guān)系。
所有的對(duì)象可以成為各種對(duì)象類(lèi),每個(gè)對(duì)象類(lèi)都定義了一組方法。
通過(guò)執(zhí)行對(duì)象的操作可以改變獨(dú)享的屬性,但它必須通過(guò)消息的傳遞。
UML是軟件開(kāi)發(fā)中的一個(gè)重要工具,它主要應(yīng)用于基于對(duì)象的面向?qū)ο蠓椒ā?/p>
UML圖:
- 用例圖
- 靜態(tài)圖:類(lèi)圖,對(duì)象圖
- 行為圖:狀態(tài)圖,活動(dòng)圖
- 交互圖:順序圖,協(xié)作圖
- 實(shí)現(xiàn)圖:構(gòu)件圖,部署圖
| 用例圖 | 從用戶使用系統(tǒng)的角度描述系統(tǒng)功能的圖形表達(dá)方法 |
| 類(lèi)圖 | 表達(dá)系統(tǒng)類(lèi)及其相互聯(lián)系的圖(面向?qū)ο笤O(shè)計(jì)的核心) |
| 對(duì)象圖 | 對(duì)象是類(lèi)的實(shí)例,對(duì)象間連接是類(lèi)之間關(guān)聯(lián)的實(shí)例 |
| 狀態(tài)圖 | 描述一個(gè)特定對(duì)象的所有可能狀態(tài)和引起狀態(tài)轉(zhuǎn)換的事件 |
| 順序圖 | 描述對(duì)象之間的動(dòng)態(tài)交互關(guān)系,著重表現(xiàn)對(duì)象間消息傳遞的時(shí)間順序 |
| 活動(dòng)圖 | 活動(dòng)圖描動(dòng)作及動(dòng)作間關(guān)系 |
| 協(xié)作圖 | 描述相互協(xié)作的對(duì)象間的交互關(guān)系和鏈接關(guān)系 |
| 構(gòu)件圖 | 描述軟件構(gòu)件間的依賴(lài)關(guān)系 |
| 部署圖 | 描述處理器、硬件設(shè)備和軟件構(gòu)件運(yùn)行時(shí)的構(gòu)架 |
面向?qū)ο蠓治鍪紫纫?問(wèn)題的對(duì)象模型。
面向?qū)ο蠓治鲭A段建立的模型中,核心是對(duì)象(生活中也是)。
面向?qū)ο蟮膭?dòng)態(tài)模型中,每張狀態(tài)圖表示某一個(gè)類(lèi)的動(dòng)態(tài)行為。
動(dòng)態(tài)模型著重于系統(tǒng)的邏輯控制,它包括事件追蹤圖和狀態(tài)圖。
對(duì)象模型的描述工具是對(duì)象圖。
功能模型中的數(shù)據(jù)流圖(DFD),往往形成一個(gè)層次結(jié)構(gòu)。
面向?qū)ο笤O(shè)計(jì)階段的主要任務(wù)是系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)。
只有類(lèi)的共有界面的成員才能成為使用類(lèi)的操作,這是軟件設(shè)計(jì)的信息隱藏原則。
對(duì)象的屬性集合是它的特征表示。
面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言不同于其他語(yǔ)言的主要特點(diǎn)是繼承性。
面向?qū)ο蟮臏y(cè)試與傳統(tǒng)測(cè)試方法的主要區(qū)別是測(cè)試對(duì)象不同。
面向?qū)ο蠓治雠c設(shè)計(jì)活動(dòng)是一個(gè)多次反復(fù)迭代的過(guò)程。
第8章 ?軟件工程管理
軟件工程針對(duì)維護(hù)工作的主要目標(biāo)是:提高軟件的可維護(hù)性,降低維護(hù)的工作量。
度量的作用是為有效地、定量地進(jìn)行軟件工程過(guò)程管理。
LOC和FP是兩種不同的估算技術(shù) ,兩者對(duì)分解所需要的詳細(xì)程度不同。
風(fēng)險(xiǎn)管理過(guò)程:規(guī)劃,識(shí)別 ,評(píng)估。
按照人家配置管理的原始指導(dǎo)思想,受控制的對(duì)象應(yīng)該是軟件配置項(xiàng)。
常用的評(píng)估軟件質(zhì)量的因素:可理解性,可靠性,可維護(hù)性。
基線是通過(guò)了正式復(fù)審的軟件配置項(xiàng)(基線形成前可以快速修改)。
使用軟件時(shí)提出增加新功能就必須進(jìn)行完善性維護(hù)。
軟件文檔不僅是軟件開(kāi)發(fā)各階段的重要依據(jù),也影響軟件的可維護(hù)性。
影響軟件維護(hù)的主要因素:可修改性,可測(cè)試性,可理解性。
CMM表示軟件過(guò)程成熟度模型(Capability Maturity Model Integration)。
代碼行技術(shù)是比較簡(jiǎn)單的估算軟件規(guī)模的方法。
前面沒(méi)有提到的一些重點(diǎn)問(wèn)題
-
個(gè)體與交互勝于流程與工具
-
可工作的軟件勝于面面俱到的文檔
-
客戶協(xié)作勝于合同談判
-
響應(yīng)變化勝于遵循計(jì)劃
-
作用:避免需求中的錯(cuò)誤,高效發(fā)開(kāi)軟件。
-
重要性:能減少軟件開(kāi)發(fā)費(fèi)用,提高軟件質(zhì)量,確保軟件開(kāi)發(fā)的正常進(jìn)行。
-
難點(diǎn):
- 用戶和開(kāi)發(fā)人員間存在交流障礙
- 用戶對(duì)需求的陳述不完整
- 基本思想: 對(duì)于一個(gè)復(fù)雜的系統(tǒng),按照其內(nèi)部數(shù)據(jù)的流動(dòng)和處理過(guò)程,采用“抽象”和“分解”的手段,首先“抽象”得到系統(tǒng)的高層邏輯模型,之后采用自頂向下逐步求精的方法,對(duì)系統(tǒng)邏輯模型逐層不斷“分解”細(xì)化,直到不能再細(xì)化為止,即可得到系統(tǒng)最底層的詳細(xì)邏輯模型。對(duì)系統(tǒng)結(jié)構(gòu)化分析的成果通常采用數(shù)據(jù)流圖和數(shù)據(jù)字典來(lái)表示。
- 建模方法:數(shù)據(jù)流圖(DFD),狀態(tài)轉(zhuǎn)換圖(STD),實(shí)體關(guān)系圖(ER),控制流圖(CFD)。
- 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性
- 模塊規(guī)模應(yīng)該適中
- 深度、寬度、扇出和扇入應(yīng)適當(dāng)
- 模塊的作用域應(yīng)該再控制域之內(nèi)
- 降低模塊結(jié)構(gòu)的復(fù)雜度
- 設(shè)計(jì)單出入口的模塊
- 模塊功能應(yīng)能預(yù)測(cè)
- 程序內(nèi)部文檔
- 數(shù)據(jù)說(shuō)明
- 語(yǔ)句構(gòu)造
- I/O
- 效率
- 項(xiàng)目的應(yīng)用范圍
- 用戶的要求
- 軟件開(kāi)發(fā)人員的愛(ài)好和能力
- 系統(tǒng)的可移植性要求
- 算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性
- 平臺(tái)支持
-
模塊化
-
抽象
-
信息隱藏
-
弱耦合
-
強(qiáng)內(nèi)聚
-
可重用
- 簡(jiǎn)述面向?qū)ο鬁y(cè)試策略的特點(diǎn)。
- 面向?qū)ο蟮膯卧獪y(cè)試
- 面向?qū)ο蟮募蓽y(cè)試
- 面向?qū)ο蟮拇_認(rèn)測(cè)試
- 民主制程序員組
- 主程序員組
- 現(xiàn)代程序員組。
- 意義:在軟件開(kāi)發(fā)工作中具有突出的地位和相當(dāng)?shù)墓ぷ髁俊?/li>
- 特性:
- 及時(shí)性
- 完整性
- 實(shí)用性
- 規(guī)范性
- 結(jié)構(gòu)化
- 簡(jiǎn)潔性
- 軟件質(zhì)量:軟件與明確地和隱含地定義的需求相一致的程度。
- 措施:
- 正式技術(shù)復(fù)審
- 程序正確性證明
- 模塊化:開(kāi)發(fā)具有獨(dú)立功能而且和其他模塊之間沒(méi)有過(guò)多的相互作用的模塊。
- 好處:
- 有效模塊化的軟件容易開(kāi)發(fā)
- 容易測(cè)試和維護(hù)
一些習(xí)題
- 旅行社把預(yù)訂機(jī)票的旅客信息(姓名、年齡、單位、身份證號(hào)碼、旅行時(shí)間及目的地等)輸入機(jī)票預(yù)訂系統(tǒng)。系統(tǒng)為旅客安排航班,打印出取票通知單(附有應(yīng)付的賬款)。旅客在飛機(jī)起飛的前一天憑取票通知單交款取票,系統(tǒng)檢驗(yàn)無(wú)誤,輸出機(jī)票給旅客。
請(qǐng)畫(huà)出系統(tǒng)的頂層數(shù)據(jù)流圖、0 層數(shù)據(jù)流圖。
-
某高校學(xué)籍管理系統(tǒng)用于各個(gè)學(xué)院對(duì)每一位學(xué)生的入學(xué)、畢業(yè)、每學(xué)期考試成績(jī)、升留級(jí)等事項(xiàng)進(jìn)行處理,包括錄入學(xué)生基本信息、存儲(chǔ)學(xué)生基本情況例如,學(xué)生各科成績(jī)等;查詢學(xué)生各科成績(jī)、單科成績(jī);打印學(xué)生名單、學(xué)生成績(jī)單;統(tǒng)計(jì)班平均成績(jī)、各科平均成績(jī);根據(jù)分?jǐn)?shù)進(jìn)行升留級(jí)處理等功能。 具體描述:
學(xué)籍管理系統(tǒng)細(xì)分為錄入、存儲(chǔ)處理、查詢處理,升留級(jí)處理和統(tǒng)計(jì)處理。
(1)錄入、存儲(chǔ)處理首先對(duì)學(xué)生信息進(jìn)行審查,如果是新生,則錄入、存儲(chǔ)新生的信息。并寫(xiě)入學(xué)生記錄文件;否則,從學(xué)生成績(jī)文件中讀該學(xué)生的各科成績(jī),輸出學(xué)生記錄表及成績(jī)單。
(2)查詢處理接收學(xué)生學(xué)號(hào)和課程號(hào),并進(jìn)行有效性檢查,如無(wú)效,則拒絕接受;否則按照查詢要求從學(xué)生成績(jī)文件中讀取成績(jī)并打印成績(jī)單。
(3)升留級(jí)處理接收學(xué)生成績(jī),并從成績(jī)標(biāo)準(zhǔn)文件中讀取信息,判斷該學(xué)生是否升級(jí),形成升留級(jí)名單,并更新學(xué)生記錄。
(4)統(tǒng)計(jì)處理接收學(xué)生記錄,根據(jù)統(tǒng)計(jì)選擇進(jìn)行班平均成績(jī)和各科平均成績(jī)的統(tǒng)計(jì),形成相應(yīng)的統(tǒng)計(jì)表。
請(qǐng)畫(huà)出該學(xué)籍管理系統(tǒng)的三層數(shù)據(jù)流圖。
-
某高校學(xué)生檔案管理系統(tǒng)的主要功能有:
(1)對(duì)學(xué)生檔案信息的增加、刪除和修改;
(2)對(duì)學(xué)生信息的查詢和打印;
(3)對(duì)學(xué)生信息的統(tǒng)計(jì)和打印;
(4)此外,本系統(tǒng)還應(yīng)該能與其它系統(tǒng)共享部分?jǐn)?shù)據(jù)。
請(qǐng)畫(huà)出此系統(tǒng)的頂層數(shù)據(jù)流圖、0 層數(shù)據(jù)流圖。
-
某高校學(xué)生檔案管理系統(tǒng)的主要功能有:
(1)對(duì)學(xué)生檔案信息的增加、刪除和修改;
(2)對(duì)學(xué)生信息的查詢和打印;
(3)對(duì)學(xué)生信息的統(tǒng)計(jì)和打印;
(4)此外,本系統(tǒng)還應(yīng)該能與其它系統(tǒng)共享部分?jǐn)?shù)據(jù)。
請(qǐng)?jiān)O(shè)計(jì)出學(xué)生檔案管理軟件的系統(tǒng)結(jié)構(gòu)圖。
-
在自動(dòng)飲料售貨機(jī)中,除了買(mǎi)飲料的顧客,還有以下活動(dòng)者:
(1) 供應(yīng)商,向自動(dòng)飲料售貨機(jī)添加飲料
(2) 收銀員,從自動(dòng)飲料售貨機(jī)收錢(qián)。
后面兩類(lèi)人在使用自動(dòng)飲料售貨機(jī)時(shí),都涉及打開(kāi)和關(guān)閉該機(jī)器。請(qǐng)畫(huà)出它們的用例圖。
某校圖書(shū)管理系統(tǒng)具有以下功能:
(1)借書(shū):先為讀者辦理借書(shū)證,借書(shū)證上記錄讀者姓名、學(xué)號(hào)、所屬系和班級(jí)等信息。
借書(shū)時(shí)根據(jù)讀者的借書(shū)證查閱讀者檔案,若借書(shū)數(shù)目未超過(guò)規(guī)定數(shù)量,則辦理借閱手續(xù),修
改庫(kù)存記錄及讀者檔案;若超過(guò)規(guī)定數(shù)量則不予借閱。
(2)還書(shū):根據(jù)讀者書(shū)中的條形碼,修改庫(kù)存記錄及讀者檔案,若借閱時(shí)間超過(guò)規(guī)定期限
則罰款。
(3)圖書(shū)管理員還要定期生成訂書(shū)清單,包括書(shū)名、圖書(shū)代號(hào)、單價(jià)、數(shù)量等,根據(jù)需要
向供應(yīng)商訂購(gòu)圖書(shū)。
總結(jié)
以上是生活随笔為你收集整理的实用软件工程(张海藩)复习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 算法之排序算法-shell排序(移位法)
- 下一篇: createprocess失败代码2_D