第一篇:軟件工程復(fù)習(xí)提綱總結(jié)
第1部分:軟件工程概論
要求掌握:
● 軟件的概念,軟件的本質(zhì)特征是什么?
軟件:是相對(duì)硬件而言的,是計(jì)算機(jī)系統(tǒng)中的程序、數(shù)據(jù),及其相關(guān)文檔的總稱。軟件的本質(zhì)是:對(duì)人的意識(shí)的反映
軟件的特征: 抽象性、智能性、無形性、依附性、復(fù)雜性、泛域性、非損性、復(fù)制性、演化性 ● 軟件工程概念
軟件工程是采用工程概念、原理、技術(shù)和方法來指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科,該學(xué)科運(yùn)用到計(jì)算機(jī)科學(xué)、數(shù)學(xué)、管理學(xué)等原理和方法,遵循系統(tǒng)化的思想,運(yùn)用工程化方法,指導(dǎo)軟件開發(fā)和維護(hù)工作。
● 軟件工程提出的原因,軟件危機(jī)的主要表現(xiàn)形式
答:
因軟件危機(jī)提出了軟件工程
表現(xiàn)形式:◆ 軟件開發(fā)不能按照計(jì)劃進(jìn)行控制和完成,普遍存在拖延工期的現(xiàn)象;◆ 軟件開發(fā)生產(chǎn)率滿足不了巨大的市場(chǎng)需要;◆ 開發(fā)出來的軟件滿足不了用戶的需求;◆ 軟件投資嚴(yán)重超出預(yù)算;◆ 軟件可靠性和可用性差。
● 軟件工程學(xué)科的發(fā)展過程,各階段的時(shí)間范圍,以及在每一個(gè)發(fā)展階段突出的特征 軟件工程學(xué)科的發(fā)展可以粗略劃分為四個(gè)時(shí)期: 1.軟件工程準(zhǔn)備期:20世紀(jì)40年代中-60年代末
特征: 程序是軟件的核心內(nèi)容; 強(qiáng)調(diào)程序的藝術(shù)化和個(gè)性化;軟件概念出現(xiàn);軟件危機(jī)出現(xiàn)。2.軟件工程形成期:20世紀(jì)60年代末-80年代中
特征:軟件工程概念出現(xiàn);沒有形成完整軟件工程學(xué)科體系; 以軟件開發(fā)方法研究帶動(dòng)整個(gè)軟件工程的發(fā)展,出現(xiàn)了典型的結(jié)構(gòu)化方法,JSD方法等經(jīng)典軟件開發(fā)方法;程序設(shè)計(jì)方法深入研究:程序設(shè)計(jì)=算法+數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),數(shù)據(jù)庫(kù)技術(shù)發(fā)展 3.軟件工程發(fā)展期:20世紀(jì)80年代末-90年代中
特征:軟件需求旺盛,軟件產(chǎn)業(yè)形成;微機(jī)、網(wǎng)絡(luò)等技術(shù)出現(xiàn)并飛速發(fā)展;軟件開發(fā)集成環(huán)境; 面向?qū)ο蠓椒ㄩ_始受到重視;文件服務(wù)器模式,C/S模式出現(xiàn)。4.軟件工程縱深期:20世紀(jì)90年代末-今天
特征: WWW技術(shù)出現(xiàn)并趨于成熟; 軟件體系結(jié)構(gòu); 軟件工程過程 以UML為代表的軟件建模語言和軟件建模技術(shù)出現(xiàn);云計(jì)算和物聯(lián)網(wǎng)。
● 軟件工程學(xué)科的基本內(nèi)容,在什么時(shí)間提升為一級(jí)學(xué)科?
答:內(nèi)容:軟件工程理論,軟件工程技術(shù),軟件工程管理,軟件服務(wù)工程,在2011年.● 軟件生存期模型,都有哪些形式,每一種模型的特征及優(yōu)缺點(diǎn)
答:1.瀑布模型 :各階段明確任務(wù)、自上而下、順序固定、逐級(jí)過渡的結(jié)構(gòu)模式,各階段的聯(lián)系就象瀑布流水一樣自上而下、不可逆返。
特點(diǎn):軟件各階段之間具有順序性和依賴性的觀點(diǎn);問題放大效應(yīng)的觀點(diǎn);推遲實(shí)現(xiàn)的觀點(diǎn);質(zhì)量保障的觀點(diǎn)
缺點(diǎn):開發(fā)過程不允許往返,缺乏靈活性;在軟件開發(fā)出來之前,用戶無法知道軟件的真實(shí)面目。2.演化模型
特點(diǎn):針對(duì)事先不能完整地定義需求; 針對(duì)用戶的核心需求,開發(fā)核心系統(tǒng);根據(jù)用戶的反饋,實(shí)施活動(dòng)的迭代。
優(yōu)點(diǎn):解決了瀑布模型不允許階段返回的問題; 適合不能及時(shí)確定需求的開發(fā)場(chǎng)景;
缺點(diǎn): 每一個(gè)迭代期,仍然以瀑布模型為基礎(chǔ)。3.增量模型
優(yōu)點(diǎn):每個(gè)階段交付一個(gè)可用的產(chǎn)品;減少一個(gè)全新產(chǎn)品給客戶帶來的心理上的影響;分階段地交 1 付產(chǎn)品不需要大的資金支出;需求經(jīng)常變化,增量模型的靈活性使其具有更加優(yōu)越的適用性。
缺點(diǎn):需要一個(gè)開放的結(jié)構(gòu),方便構(gòu)件的加入;增量模型本身就是一個(gè)矛盾的名詞。4.螺旋模型:分步推進(jìn)、逐步深化的螺旋方式
優(yōu)點(diǎn):更符合人們的認(rèn)知規(guī)律;容易確定某個(gè)軟件產(chǎn)品何時(shí)測(cè)試完成。
缺點(diǎn):開發(fā)和維護(hù)的界限變得不十分清晰;僅適應(yīng)于大型軟件開發(fā)。5.噴泉模型
特點(diǎn):軟件生存期需要?jiǎng)澐殖蔀槎鄠€(gè)相對(duì)獨(dú)立的階段,但各個(gè)階段之間的界限并不是十分明確,相鄰階段之間存在明顯的重迭和交叉。6.智能模型
●什么叫軟件工程過程,國(guó)際標(biāo)準(zhǔn)化組織規(guī)定了有哪些過程?RUP的含義是什么?它有哪些典型特征? 答:軟件工程過程:是指軟件在其生命周期中,一系列相關(guān)活動(dòng)按照確定的次序演繹變化的進(jìn)程.包括:◆ 獲取過程 ◆ 運(yùn)作過程 ◆ 供應(yīng)過程 ◆ 維護(hù)過程 ◆ 管理過程
◆ 支持過程◆ 開發(fā)過程
◆ 裁剪過程
統(tǒng)一軟件開發(fā)過程RUP
時(shí)間維:
初始、細(xì)化、構(gòu)建、移交4個(gè)階段。
工作維:領(lǐng)域分析、需求分析、系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等核心工作。第2部分:軟件建模技術(shù)概論
要求掌握: ● 軟件模型的概念
答:軟件模型:是指通過軟件建模語言,對(duì)軟件的功能和性能等外特性,軟件的要素和結(jié)構(gòu),以及軟件的動(dòng)態(tài)行為特性所給出的抽象和規(guī)范描述。
● 軟件模型的基本內(nèi)容
答:1)從軟件反映的側(cè)面看軟件模型的內(nèi)容:功能模型、對(duì)象模型、數(shù)據(jù)模型、過程、交互、狀態(tài)、架構(gòu)、界面。
2)從軟件開發(fā)的工作看軟件模型的內(nèi)容:業(yè)務(wù)、需求、分析、測(cè)試、設(shè)計(jì)?!?UML的中文含義是什么?
答:統(tǒng)一建模語言(Unified Modeling Language)● 在2.0版本之后,UML共定義了哪些圖? 答:
●用例圖、類圖、活動(dòng)圖、順序圖、狀態(tài)圖的畫法,這些圖的作用是什么
答:1.用例圖:用例圖用來描述軟件的功能,作用是: 展現(xiàn)軟件功能;展現(xiàn)軟件使用者和軟件之間的關(guān)系;展現(xiàn)軟件功能相互之間的關(guān)系。
2.類圖:作用:描述一組類之間的關(guān)系。用于結(jié)構(gòu)和靜態(tài)建模.3.活動(dòng)圖:作用:描述活動(dòng)流過程。
4.順序圖:作用:描述一個(gè)交互,強(qiáng)調(diào)消息之間的時(shí)間順序。
5.狀態(tài)圖:作用:描述一個(gè)模型要素所處的狀態(tài)及其變化。
第3部分:軟件策劃 ● 軟件為什么要進(jìn)行策劃?
答:軟件策劃的含義:是在開發(fā)一個(gè)軟件之初,所進(jìn)行的謀劃、打算和計(jì)劃。
工作包括:提出軟件開發(fā)的問題;定義和描述問題;可行性分析; 軟件規(guī)劃; 軟件計(jì)劃?!?可行性分析的主要內(nèi)容是什么? 答:經(jīng)濟(jì)、技術(shù)、社會(huì)?!?如何進(jìn)行軟件規(guī)劃?
答: 軟件的背景、環(huán)境及性質(zhì);軟件的基本需求; 軟件的目標(biāo)和范圍;軟件的框架和構(gòu)成; 軟件建設(shè)的長(zhǎng)期發(fā)展設(shè)想;軟件開發(fā)的近期計(jì)劃安排。●如何制定軟件計(jì)劃?
答:1.軟件項(xiàng)目總述:包括軟件項(xiàng)目的名稱、項(xiàng)目提出的背景、軟件目標(biāo)、軟件的性質(zhì)、范圍、基本需求、基本環(huán)境、基礎(chǔ)條件和時(shí)限要求等.2.軟件的工作任務(wù):按工作階段,工作任務(wù)把分解出來的具體任務(wù)列出來。3.軟件的資源需求(1)人力資源:
(2)環(huán)境資源:計(jì)算機(jī)及相關(guān)設(shè)備、網(wǎng)絡(luò)、支撐軟件、場(chǎng)地資金等其他資源 進(jìn)度計(jì)劃
第4部分:軟件需求分析
要求掌握: ● 什么叫軟件需求?
答:需求是指明系統(tǒng)能為用戶做什么,能夠給用戶解決什么問題的說明。它描述了系統(tǒng)能夠給用戶提供什么功能和服務(wù),并且以怎樣方式來完成這些功能和服務(wù),以及的系統(tǒng)性質(zhì)、行為和特性
● 軟件需求的基本內(nèi)容
答:總體需求; 功能需求;非功能需求; 環(huán)境性需求
● 結(jié)構(gòu)化方法的基本思想,結(jié)構(gòu)化方法用什么工具進(jìn)行需求分析? 答:模塊化、自頂向下、結(jié)構(gòu)化程序設(shè)計(jì)的思想
結(jié)構(gòu)化需求模型的主要內(nèi)容:數(shù)據(jù)模型:采用E-R圖描述; 功能模型:采用數(shù)據(jù)流圖描述; 行為模型:采用狀態(tài)遷移圖描述?!?掌握用例圖的畫法
泛化關(guān)系: 參與者與參與者之間,用例與用例之間存在一般與特殊的泛化關(guān)系,例如:
包含關(guān)系: 兩個(gè)用例之間,一個(gè)用例(基用例)的行為要用到另外一個(gè)用例(包含用例)的行為。包含關(guān)系用依賴關(guān)系的<
擴(kuò)展關(guān)系:表示基本用例在擴(kuò)展點(diǎn)要增加新的行為或功能,以擴(kuò)展到新用例。擴(kuò)展關(guān)系用依賴關(guān)系的<
● 能夠?qū)σ粋€(gè)應(yīng)用需求采用用例圖進(jìn)行需求分析
第5部分:軟件設(shè)計(jì)
● 軟件設(shè)計(jì)與需求分析有什么區(qū)別?
答:軟件設(shè)計(jì):是根據(jù)需求分析的結(jié)果,考慮軟件實(shí)現(xiàn)環(huán)境,通過對(duì)軟件的結(jié)構(gòu)、構(gòu)件、數(shù)據(jù)、界面等方面的設(shè)計(jì),得到優(yōu)化的軟件設(shè)計(jì)方案的工作。
需求分析回答軟件“做什么”,軟件設(shè)計(jì)回答軟件“怎么做”的問題。
● 軟件體系結(jié)構(gòu)設(shè)計(jì)的基本內(nèi)容是什么?
答:軟件體系結(jié)構(gòu)設(shè)計(jì):從信息需求中綜合出數(shù)據(jù)結(jié)構(gòu)、程序結(jié)構(gòu)、接口特征和過程細(xì)節(jié)。
● 如何進(jìn)行實(shí)體類的設(shè)計(jì),類優(yōu)化有哪些方法?
答:經(jīng)歷建立業(yè)務(wù)對(duì)象模型、PIM類模型設(shè)計(jì)和PSM類模型設(shè)計(jì)等工作。
類優(yōu)化方法:利用數(shù)據(jù)庫(kù)規(guī)范化理論來優(yōu)化類模型;善用事務(wù)模式;根據(jù)類的優(yōu)化準(zhǔn)則來優(yōu)化類模型;去除派生屬性;合并性質(zhì)相同的屬性; 屬性轉(zhuǎn)化為類;多對(duì)多關(guān)聯(lián)的優(yōu)化?!?掌握用事務(wù)模式建立類模型的方法
● 掌握用MVC模式進(jìn)行功能用例設(shè)計(jì)的方法 ● 掌握以類圖為基礎(chǔ)的數(shù)據(jù)庫(kù)設(shè)計(jì)方法 ● 能夠?qū)σ粋€(gè)應(yīng)用進(jìn)行設(shè)計(jì)工作 第6部分:軟件測(cè)試 ● 軟件測(cè)試的概念
答:用人工或自動(dòng)的方法執(zhí)行并評(píng)價(jià)軟件產(chǎn)品或其部件的過程,以驗(yàn)證它是否滿足規(guī)格的要求,或是識(shí)別期望結(jié)果和實(shí)際結(jié)果之間有誤差別。
● 軟件測(cè)試的基本方法(黑盒測(cè)試,白盒測(cè)試)
答:1)黑盒測(cè)試2)白盒測(cè)試3)靜態(tài)測(cè)試4)動(dòng)態(tài)測(cè)試 5)人工測(cè)試6)自動(dòng)測(cè)試 ● 軟件測(cè)試的工作
答:1測(cè)試的組織和管理、建立測(cè)試隊(duì)伍、小組,對(duì)測(cè)試用例、軟件缺陷、文檔等進(jìn)行管理; 2 編制測(cè)試計(jì)劃:編制測(cè)試計(jì)劃和說明; 3 設(shè)計(jì)測(cè)試用例: 測(cè)試實(shí)施:按照測(cè)試計(jì)劃與測(cè)試說明的定義對(duì)測(cè)試對(duì)象進(jìn)行相應(yīng)的測(cè)試,填寫測(cè)試報(bào)告中相應(yīng)的表格 5 測(cè)試報(bào)告分析:定性分析,以檢查測(cè)試工作執(zhí)行狀態(tài); 6 測(cè)試評(píng)審與報(bào)告:提交完整的測(cè)試文檔。
****************************************************************************** 6 軟件是計(jì)算機(jī)系統(tǒng)中的(程序)、數(shù)據(jù)及其(文檔)的總稱。
軟件的類型按作用可以分為:(系統(tǒng)軟件)、應(yīng)用軟件和(支撐軟件)三種類型 軟件工程的概念是在(1968)年,在(北大西洋公約組織一次會(huì)議)被首次提出來的。下面(B)不是軟件的特征:
A 系統(tǒng)性與復(fù)制性 B 有形性與可控性 C 抽象性與智能性 D 依附性與泛域性 下面說法正確的是(B)
A 20世紀(jì)50年代提出軟件工程概念 B 20世紀(jì)60年代提出軟件工程概念 C 20世紀(jì)70年代提出客戶機(jī)/服務(wù)器技術(shù) D 20世紀(jì)80年代軟件工程學(xué)科達(dá)到成熟 下面(D)不是系統(tǒng)軟件:
A BIOS B Windows C 設(shè)備驅(qū)動(dòng)程序 D 辦公軟件
下面(A)不是軟件危機(jī)的原因: A:軟件生產(chǎn)能力不足 B:對(duì)軟件內(nèi)涵認(rèn)識(shí)不夠 C:不重視軟件工程化 D:軟件工具落后
從現(xiàn)實(shí)生活中找一個(gè)例子來說明硬件、軟件和計(jì)算機(jī)語言的關(guān)系。
軟件工程生存周期模型有瀑布模型、(噴泉模型)、螺旋模型和(演化模型)等。UML是(Rational)提出來的,他的中文含義是(統(tǒng)一軟件建模語言)。下面(B)不是軟件生存周期中,某一階段的工作:
A:?jiǎn)栴}定義 B:程序安裝 C:系統(tǒng)測(cè)試 D:軟件設(shè)計(jì) 下面(A)不屬于RUP的工作:
A:構(gòu)建 B:測(cè)試 C:需求 D:實(shí)現(xiàn) 可行性分析包括(經(jīng)濟(jì))、技術(shù)和(社會(huì))幾個(gè)方面。對(duì)可行性分析而言,正確的是(C):
A:可行性分析有可行和不可行兩種結(jié)果 B:投資也就是軟件的開發(fā)總成本 C:效益包括經(jīng)濟(jì)效益和社會(huì)效益 D:社會(huì)可行性也就是軟件操作的可行性 1.軟件需求分析的主要任務(wù)是()。
A.給出軟件解決方案
B.給出系統(tǒng)模塊結(jié)構(gòu) C.定義模塊算法 D.在一個(gè)特定的抽象層上建立系統(tǒng)模型
2.為了表達(dá)系統(tǒng)的靜態(tài)結(jié)構(gòu),可用的圖形化工具有()。
A.類圖、構(gòu)件圖、部署圖
B.類圖、狀態(tài)圖、順序圖。
C.協(xié)作圖、活動(dòng)圖、PAD圖
D.交互圖、狀態(tài)圖、USE CASE圖。
3.主要的項(xiàng)目管理活動(dòng)包括計(jì)劃項(xiàng)目、組織項(xiàng)目、()和終止項(xiàng)目。
協(xié)調(diào)項(xiàng)目
B.風(fēng)險(xiǎn)管理
C.監(jiān)督項(xiàng)目
D.控制項(xiàng)目
4.若對(duì)象A可以給對(duì)象B發(fā)送消息,那么()。
A.對(duì)象B可以看見對(duì)象A
B.對(duì)象A可看見對(duì)象B C.對(duì)象A、B相互不可見
D.對(duì)象A、B相互可見
5.軟件設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu)、過程和模塊,其中軟件結(jié)構(gòu)設(shè)計(jì)的主要任務(wù)是要確定()。A.模塊間的操作細(xì)節(jié)B.模塊間的相似性 C.模塊間的組成關(guān)系D.模塊的具體功能 6.隨著軟硬件環(huán)境變化而修改軟件的過程是()。
A.校正性維護(hù) B.適應(yīng)性維護(hù)
C.完善性維護(hù)
D.預(yù)防性維護(hù)
7.在系統(tǒng)測(cè)試中,()是在一個(gè)實(shí)際環(huán)境中使用真實(shí)數(shù)據(jù)運(yùn)行系統(tǒng)。
A.驗(yàn)證測(cè)試
B.審計(jì)測(cè)試
C.確認(rèn)測(cè)試
D.模塊測(cè)試 8.當(dāng)使用DFD對(duì)一個(gè)工資系統(tǒng)進(jìn)行建模時(shí),()可以被認(rèn)定為外部實(shí)體。
A.接收工資單的銀行
B.工資系統(tǒng)源代碼程序
C.工資單
D.工資數(shù)據(jù)庫(kù)的維護(hù) 9.在UML提供的圖中,()用于描述系統(tǒng)與外部系統(tǒng)及用戶之間的交互。
A.用例圖
B.類圖
C.對(duì)象圖
D.部署圖
10.在面向數(shù)據(jù)流的設(shè)計(jì)方法中,一般把數(shù)據(jù)流圖中的數(shù)據(jù)流劃分為()兩種
A.?dāng)?shù)據(jù)流和事務(wù)流B.變換流和數(shù)據(jù)流
C.變換流和事務(wù)流 D.控制流和事務(wù)流
二、填空題:
1.如果一個(gè)模塊被n個(gè)模塊調(diào)用,其中直接的上級(jí)模塊的個(gè)數(shù)是m個(gè)(m<=n),那么該模塊的扇入數(shù)是______個(gè)。
2.軟件開發(fā)的螺旋模型綜合了瀑布模型和演化模型的優(yōu)點(diǎn),還增加了___________。3._________是一項(xiàng)已經(jīng)定義得很好的工作,是管理有關(guān)項(xiàng)目工作的最小的單元。
4.在設(shè)計(jì)人機(jī)界面時(shí)用戶技能對(duì)用戶進(jìn)行分類,可分為新手用戶、平均用戶、專家用戶和_______。5.一般在程序起始部分,表明程序用途的注釋是___________。
三、簡(jiǎn)答題:
1. 增量模型的主要特點(diǎn)是什么?它有哪些優(yōu)缺點(diǎn)?
2. 軟件設(shè)計(jì)中,模塊之間的數(shù)據(jù)耦合與特征耦合的有何區(qū)別?請(qǐng)舉例說明。3. 請(qǐng)簡(jiǎn)述UML部署圖的作用,并舉例說明。
4. 簡(jiǎn)述類的聚集關(guān)系,共享聚集和組合聚集有什么區(qū)別,請(qǐng)舉例說明。
四、設(shè)計(jì)題:
1.請(qǐng)畫出以下系統(tǒng)的分析階段的類圖。一幢有m層樓的大廈中需要一套控制n部電梯的產(chǎn)品,要求n部電梯根據(jù)下列約束在樓內(nèi)移動(dòng)。C1:每部電梯有m個(gè)按鈕,每個(gè)按鈕代表一層,當(dāng)按下按鈕是指示燈亮,電梯駛向相應(yīng)樓層,當(dāng)?shù)竭_(dá)樓層時(shí)指示燈滅。C2:除最低和最高層外每層樓有兩個(gè)按鈕分別指示電梯上行和下行,當(dāng)這兩個(gè)按鈕之一被按下時(shí)相應(yīng)的燈亮,當(dāng)電梯到達(dá)此樓層時(shí)燈熄滅,電梯向要求的方向移動(dòng)。C3:當(dāng)電梯無升降動(dòng)作時(shí),關(guān)門并停在當(dāng)前樓層。
2.設(shè)計(jì)下列偽碼程序的語句覆蓋和基本路徑測(cè)試的測(cè)試用例。INPUT(A,B,C)IF A>5 THEN X=10 ELSE X=1 IF B>10 THEN Y=20 ELSE Y=2IF C>50 THEN Z=30 ELSE Z=3 3.用戶可以通過電信的計(jì)費(fèi)系統(tǒng)查詢?cè)捹M(fèi),用戶既可以是個(gè)人用戶,也可以是集團(tuán)用戶。查詢由電信計(jì)費(fèi)人員完成。用戶話費(fèi)查詢包括查詢通話記錄、短消息記錄和月租費(fèi),集團(tuán)用戶還可以查詢集團(tuán)定制服務(wù)費(fèi)用。請(qǐng)畫出用例圖。
五、應(yīng)用題:
為方便儲(chǔ)戶,銀行擬開發(fā)計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)。儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、利率等信息,并打印出存款單給儲(chǔ)戶;如果是取款,系統(tǒng)計(jì)算利息并印出利息清單給儲(chǔ)戶。
請(qǐng)?jiān)O(shè)計(jì)出系統(tǒng)的數(shù)據(jù)流圖(畫頂層,0層和1層)(10分),軟件結(jié)構(gòu)圖(10分)。
第二篇:《軟件工程》復(fù)習(xí)提綱
《軟件工程》課程要點(diǎn)
? 每章教學(xué)課件中的“本章小結(jié)”列出了需要掌握的內(nèi)容 ? 教學(xué)過程中的例題和習(xí)題也是課程重點(diǎn)
一、軟件工程與軟件過程概述
1.概念:
(1)軟件的概念(組成成分、作用);
答:計(jì)算機(jī)軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合;用于實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)所需要的邏輯方法和控制過程
(2)軟件危機(jī)的含義、表現(xiàn)、產(chǎn)生原因(客觀、主觀)
答:計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題。軟件危機(jī)的表現(xiàn):
①對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)很不準(zhǔn)確 ②已完成的軟件不能滿足用戶需求 ③軟件質(zhì)量差 ④軟件不可維護(hù)
⑤軟件沒有開發(fā)文檔
⑥軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升 ⑦軟件生產(chǎn)率跟不上硬件的發(fā)展和計(jì)算機(jī)迅速普及的趨勢(shì) 與軟件的特點(diǎn)有關(guān)(客觀原因):
①軟件是計(jì)算機(jī)系統(tǒng)中的邏輯部件,缺乏“可見性”,管理和控制軟件開發(fā)過程相當(dāng)困難
②軟件在使用期間不存在機(jī)械磨損和老化問題,一旦
發(fā)現(xiàn)錯(cuò)誤,通常意味著修改原來的設(shè)計(jì),因此軟件
難維護(hù)
③軟件規(guī)模龐大,程序復(fù)雜性增加,需多人分工合作(不
能保證每個(gè)人完成的工作合在一起構(gòu)成一個(gè)高質(zhì)量的大
型軟件系統(tǒng))
與軟件開發(fā)和維護(hù)的方法不正確有關(guān)(主觀原因): ① 開發(fā)無計(jì)劃
② 忽視軟件需求分析的重要性 ③ 輕視軟件維護(hù) ④ 無過硬評(píng)測(cè)手段
⑤ 缺乏有力的開發(fā)方法和工具 ⑥ 不重視開發(fā)文檔等軟件配置
(3)軟件工程學(xué)科包括的內(nèi)容(三要素)、解決的主要問題 答:(1)軟件工程定義:
1)軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科 2)采用工程化的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件3)將經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和開發(fā)技術(shù)結(jié)合起來,以較經(jīng)濟(jì)的手段開發(fā)出高質(zhì)量的軟件并有效維護(hù)它
2)軟件工程方法學(xué)的三要素:
①方法:完成軟件開發(fā)各項(xiàng)任務(wù)的技術(shù)方法 ②工具:為方法的高效運(yùn)用,而提供的自動(dòng)或半自動(dòng)的軟件支撐環(huán)境 ③過程:為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟
(4)軟件生命周期的含義、組成階段及各階段主要任務(wù)
答:軟件生命周期:
一個(gè)軟件從定義、開發(fā)、運(yùn)行維護(hù),直到最終被廢棄要經(jīng)歷一個(gè)漫長(zhǎng)的時(shí)期,這個(gè)時(shí)期稱為軟件生命周期。
(1)問題定義階段:
通過調(diào)研,提出關(guān)于問題的性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報(bào)告,并且需要得到客戶的確認(rèn)。
●回答“要解決的問題是什么?”
●文檔:?jiǎn)栴}定義報(bào)告(2)可行性研究階段:
用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。① 進(jìn)一步了解用戶需求 ② 提出若干種可能的系統(tǒng)實(shí)現(xiàn)方案
③ 分析每種方案的技術(shù)、經(jīng)濟(jì)、社會(huì)可行性 ④ 最終確定這項(xiàng)工程的可行性
●回答“是否有行得通的解決方法?” ●文檔:可行性研究報(bào)告,項(xiàng)目開發(fā)計(jì)劃
(3)需求分析階段:
對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。① 得出經(jīng)過用戶確認(rèn)的系統(tǒng)需求
② 用正式文檔(需求規(guī)格說明)準(zhǔn)確表達(dá)系統(tǒng)需求 回答 “系統(tǒng)必須做什么?” 文檔:需求規(guī)格說明書(4)概要設(shè)計(jì)階段:
①設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)方案
②設(shè)計(jì)程序的體系結(jié)構(gòu),即確定程序由哪些模塊
組成以及模塊間的關(guān)系。概括地回答“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”
文檔:概要設(shè)計(jì)說明書
5)詳細(xì)設(shè)計(jì)階段:設(shè)計(jì)實(shí)現(xiàn)每個(gè)模塊功能所需要的算
法和數(shù)據(jù)結(jié)構(gòu)
回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)?”
文檔:詳細(xì)設(shè)計(jì)說明書(6)編碼和單元測(cè)試:
寫出正確的、易理解、易維護(hù)的程序模塊代碼;
測(cè)試編寫出的每一個(gè)模塊
? 文檔:經(jīng)過測(cè)試的程序源代碼、?
程序開發(fā)記錄(模塊開發(fā)卷宗)
(7)綜合測(cè)試階段:通過各種類型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。
?
①集成測(cè)試(組裝測(cè)試)。?
②驗(yàn)收測(cè)試 ? 測(cè)試文檔:
?
測(cè)試計(jì)劃、詳細(xì)測(cè)試方案、實(shí)際測(cè)試結(jié)果
(8)軟件維護(hù)階段:
通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足
用戶的需要。四類維護(hù)活動(dòng):
改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)
文檔:軟件維護(hù)申請(qǐng)、軟件修改報(bào)告
2.需理解的問題:
(1)軟件與程序的區(qū)別和聯(lián)系?
答:計(jì)算機(jī)軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合; 程序:能夠完成特定功能和性能的可執(zhí)行的指令序列
(2)開發(fā)一個(gè)軟件項(xiàng)目包括哪些基本的步驟?每一步驟完成哪些工作? 答:
(3)主要的軟件過程模型(生命周期模型)有哪些?各自有什么特點(diǎn)?
答:軟件生命周期模型也稱為軟件過程模型,它直觀地描述了把軟件生命周期劃分成哪些階段及各個(gè)階段 的執(zhí)行順序
主要有:瀑布模型、增量模型、螺旋模型、噴泉模型、統(tǒng)一軟件過程。
(2)瀑布模型的特點(diǎn)
①階段間具有順序性和依賴性
②推遲實(shí)現(xiàn)的觀點(diǎn)
③階段質(zhì)量保證觀點(diǎn)(文檔驅(qū)動(dòng))
瀑布模型的優(yōu)點(diǎn):強(qiáng)迫采用規(guī)范方法開發(fā)軟件;嚴(yán)格規(guī)定了各階段提交的文檔;各階段結(jié)束前必須經(jīng)過技術(shù)審查和管理復(fù)審。
瀑布模型缺點(diǎn):分析和設(shè)計(jì)階段只考慮邏輯模型;過分依賴文檔,可能導(dǎo)致最終的軟件產(chǎn)品不能完全滿足用戶需求
瀑布模型適用的軟件項(xiàng)目:規(guī)模小、需求明確、無須維護(hù) 2)快速原型模型的優(yōu)點(diǎn):
通過原型獲得準(zhǔn)確的用戶需求;通過原型積累了開發(fā)經(jīng)驗(yàn),軟件開發(fā)時(shí)期的各階段基本上是線性順序過程、提高了總開發(fā)效率。
快速原型模型適用的軟件項(xiàng)目:規(guī)模小、需求不夠明確、無須維護(hù)
3)增量模型的優(yōu)點(diǎn):
①便于并行完成開發(fā)工作;②逐步提交軟件產(chǎn)品;
③軟件的可維護(hù)性和可擴(kuò)充性較好
增量模型適用的軟件項(xiàng)目:強(qiáng)調(diào)開發(fā)進(jìn)度、可維護(hù)性要求高、可擴(kuò)充性要求高
螺旋模型是一個(gè)演化的軟件過程模型,是在每個(gè)階段之
前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。
在螺旋模型中,螺旋線的每個(gè)周期對(duì)應(yīng)一個(gè)軟件生命周期的開發(fā)階段。每個(gè)階段包括四個(gè)方面的活動(dòng):
①制定計(jì)劃-確定目標(biāo),選定方案,設(shè)定約束條件 ②風(fēng)險(xiǎn)評(píng)估-評(píng)估所選方案,識(shí)別風(fēng)險(xiǎn),考慮如何消除風(fēng)險(xiǎn)
③實(shí)施工程
④評(píng)估工程-評(píng)價(jià)開發(fā)工作,提出修正建議。
使用螺旋模型需要豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí); 螺旋模型適用于內(nèi)部開發(fā)的大型軟件項(xiàng)目
1、噴泉模型也稱為面向?qū)ο蟮纳芷谀P?/p>
2、軟件開發(fā)過程階段之間是迭代的、無間隙的
對(duì)象概念貫穿整個(gè)開發(fā)過程,只用對(duì)象類及其關(guān)系表達(dá)分析、設(shè)計(jì)、實(shí)現(xiàn)等活動(dòng)
在分析、設(shè)計(jì)和編碼等開發(fā)活動(dòng)之間并不存在明顯的邊界,開發(fā)各階段同步進(jìn)行、可以提高開發(fā)效率
3、各開發(fā)階段重疊、可能隨時(shí)增加新的需求和各種信息,因此噴泉模型要求嚴(yán)格管理文檔,審核難度加大,對(duì)項(xiàng)目管理要求較高。
RUP首先建立整個(gè)項(xiàng)目的不同時(shí)間階段,體現(xiàn)開發(fā)過程的動(dòng)態(tài)結(jié)構(gòu),包括:初始階段、細(xì)化階段、構(gòu)造階段、移交階段。同時(shí)以內(nèi)容來組織項(xiàng)目的活動(dòng),體現(xiàn)開發(fā)過程的靜態(tài)結(jié)構(gòu)。RUP融入了瀑布模型的線性結(jié)構(gòu)和演化模型的增量及迭代思想
(3)有哪些主流的軟件工程方法?
答:①傳統(tǒng)方法學(xué)(生命周期方法、結(jié)構(gòu)化方法):
●從時(shí)間角度對(duì)軟件問題進(jìn)行分解,將軟件開發(fā)維護(hù)過程劃分成若干階段。②面向?qū)ο蠓椒▽W(xué):
面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則:盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與 過程盡可能接近人類認(rèn)識(shí)世界解決問題的方法與過程,使問題空間與實(shí)現(xiàn)空間在結(jié)構(gòu)上盡可能一致。
(4)如何消除軟件危機(jī)(如何解決軟件危機(jī)?)
一、概念:軟件過程,軟件生命周期,軟件生命周期模型
6、具體說明:針對(duì)不同的軟件項(xiàng)目,應(yīng)該如何選擇軟件生 命周期模型
7、你如何理解RUP的特點(diǎn)
8、敏捷過程的主要特點(diǎn)和優(yōu)勢(shì) 1.什么是軟件生命周期,分哪幾個(gè)階段、各階段的任務(wù)是 什么? 2.常用的軟件生命周期模型有哪些?總結(jié)它們的特點(diǎn)。3.談?wù)勏铝腥咧g的區(qū)別和聯(lián)系: 軟件工程、軟件過程、軟件生命周期模型
二、結(jié)構(gòu)化分析-面向數(shù)據(jù)流的分析方法
1.什么是軟件需求?需求分析過程(步驟)?
答:軟件需求:軟件系統(tǒng)必須符合的條件和具備的功能 需求分析的任務(wù)(過程):
1.準(zhǔn)確了解用戶情況和需要解決的問題:
◆與用戶溝通的途徑:訪談、參考類似系統(tǒng)、快速原型技術(shù) 2.對(duì)需求反復(fù)求精和細(xì)化,得出對(duì)目標(biāo)系統(tǒng)完整、準(zhǔn)確
和具體的要求
3.需求建模:對(duì)獲得的需求做出抽象、即進(jìn)行無歧義描述。
◆模型是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物的一種
無歧義的書面描述。4.編制需求規(guī)格說明書 5.進(jìn)行需求分析的評(píng)審
2.需求分析模型:
(1)功能模型(數(shù)據(jù)流圖DFD)的含義、描述符號(hào)、畫法步驟及規(guī)則(2)數(shù)據(jù)模型(E-R圖)的作用
(3)行為模型(狀態(tài)轉(zhuǎn)換圖)的作用(4)數(shù)據(jù)字典的作用
三、結(jié)構(gòu)化設(shè)計(jì)
1. 軟件設(shè)計(jì)的任務(wù)? 結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析的區(qū)別和聯(lián)系? 2. 軟件設(shè)計(jì)遵循的基本原理及規(guī)則:
(1)模塊化的含義、如何劃分模塊(降低成本、提高獨(dú)立性)?(2)抽象與逐步求精的含義、二者間關(guān)系如何?(3)信息隱藏的含義
(4)如何完善軟件結(jié)構(gòu)(深度、寬度、扇入、扇出、作用域、控制域)? 3. 模塊獨(dú)立性:
(1)模塊獨(dú)立性含義?
(2)模塊獨(dú)立性的度量標(biāo)準(zhǔn):耦合的分類、含義及應(yīng)用;內(nèi)聚的分類、含義及應(yīng)用。4. 概要設(shè)計(jì)(面向數(shù)據(jù)流的設(shè)計(jì)方法)(1)概要設(shè)計(jì)的任務(wù)?
(2)數(shù)據(jù)流圖的類型及特征(變換型、事務(wù)型)(3)變換分析設(shè)計(jì)方法的應(yīng)用(步驟)(4)事務(wù)分析設(shè)計(jì)方法的應(yīng)用(步驟)4.詳細(xì)設(shè)計(jì)(過程設(shè)計(jì))
(1)詳細(xì)設(shè)計(jì)的任務(wù)
(2)結(jié)構(gòu)化程序(設(shè)計(jì))的特征
(3)詳細(xì)設(shè)計(jì)結(jié)果的描述工具:程序流程圖、N-S圖、PAD圖、PDL、判定表
一、理解以下問題:
1、什么是軟件需求?軟件需求如何分類?
2、需求分析的作用和重要性
3、需求分析階段需要完成的工作
4、結(jié)構(gòu)化分析模型的內(nèi)容
5、E-R圖的內(nèi)容和作用;數(shù)據(jù)流圖的內(nèi)容和作用;
狀態(tài)轉(zhuǎn)換圖的內(nèi)容和作用;數(shù)據(jù)字典的內(nèi)容和作用
二、掌握以下建模技術(shù)和工具:
1、使用E-R圖建立軟件系統(tǒng)的數(shù)據(jù)模型
2、使用分層數(shù)據(jù)流圖建立軟件系統(tǒng)的功能模型
3、使用狀態(tài)轉(zhuǎn)換圖建立軟件系統(tǒng)的行為模型
4、使用數(shù)據(jù)字典定義結(jié)構(gòu)化分析模型中的數(shù)據(jù)對(duì)象
1、某高校選課系統(tǒng)的功能包括:教師提交開課申請(qǐng),系統(tǒng)根據(jù)開課計(jì)劃審核教師的開課申請(qǐng),審核通過后向教師下發(fā)開課通知。學(xué)生可以通過系統(tǒng)進(jìn)行選課,首先提交選課單,系統(tǒng)進(jìn)行審核通過后,告知學(xué)生選課結(jié)果。教師可以查詢本人任教課程的選課名單。
請(qǐng)使用分層數(shù)據(jù)流圖描述選課系統(tǒng)的功能。
2、某運(yùn)動(dòng)會(huì)管理系統(tǒng)的功能為:接受來自運(yùn)動(dòng)員的報(bào)名單,生成運(yùn)動(dòng)員號(hào)碼單發(fā)送給運(yùn)動(dòng)員,產(chǎn)生參賽人員報(bào)表發(fā)送給裁判。接受來自裁判的比賽項(xiàng)目及成績(jī),產(chǎn)生比賽結(jié)果發(fā)送給發(fā)布臺(tái)。
請(qǐng)用分層數(shù)據(jù)流圖表示上述系統(tǒng)的功能。
四、軟件測(cè)試
1.軟件測(cè)試基礎(chǔ)
(1)軟件測(cè)試的含義和目的?
(2)測(cè)試用例的內(nèi)容(輸入數(shù)據(jù)、預(yù)期輸出結(jié)果)?(3)主要測(cè)試方法(黑盒測(cè)試、白盒測(cè)試)的含義?
2.主要的白盒測(cè)試技術(shù)及應(yīng)用-------邏輯覆蓋法?基本路徑測(cè)試方法? 3.主要的黑盒測(cè)試技術(shù)及應(yīng)用-------等價(jià)類法? 邊界值分析法? 4.軟件測(cè)試的過程?
(1)單元測(cè)試(采用的測(cè)試方法;測(cè)試內(nèi)容)
(2)集成測(cè)試(采用的測(cè)試方法;測(cè)試內(nèi)容;模塊組裝策略)(3)確認(rèn)測(cè)試(采用的測(cè)試方法;測(cè)試內(nèi)容;α測(cè)試與β測(cè)試?)(4)輔助模塊的含義及作用(驅(qū)動(dòng)模塊、存根模塊?)
一、理解以下概念:
1、模塊、模塊化、抽象、信息隱藏;
2、模塊獨(dú)立性、耦合、內(nèi)聚;
二、理解以下問題:
1、軟件設(shè)計(jì)階段的任務(wù)?
2、概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的區(qū)別和聯(lián)系?
3、結(jié)構(gòu)化分析為結(jié)構(gòu)化設(shè)計(jì)提供了哪些信息?
4、指導(dǎo)軟件設(shè)計(jì)的基本原理和啟發(fā)規(guī)則有哪些?理解這些原理的具體含義和作用。
二、理解以下問題:
5、軟件設(shè)計(jì)中,如何合理劃分模塊才能保證軟件的開發(fā)成本達(dá)到最???
6、什么是模塊獨(dú)立性?如何度量和設(shè)計(jì)模塊獨(dú)立性?
7、軟件設(shè)計(jì)中應(yīng)該如何設(shè)計(jì)耦合性?如何設(shè)計(jì)內(nèi)聚性?
8、表示軟件結(jié)構(gòu)的工具有哪些?
能夠正確使用以下工具:H圖、IPO圖、軟件結(jié)構(gòu)圖
9、理解變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖的特點(diǎn)。
10、使用面向數(shù)據(jù)流方法設(shè)計(jì)軟件結(jié)構(gòu)的過程是什么?、理解以下問題:
11、結(jié)合實(shí)例,掌握變換分析設(shè)計(jì)方法的步驟
12、結(jié)合實(shí)例,掌握事務(wù)分析設(shè)計(jì)方法的步驟
13、結(jié)構(gòu)化程序的基本特征是什么?
14、表示結(jié)構(gòu)化程序邏輯的工具有哪些?
能夠正確使用以下工具 :程序流程圖、N-S圖、PAD圖、PDL、判定表、判定樹
1、什么是模塊獨(dú)立性?如何度量和設(shè)計(jì)模塊獨(dú)立性?
2、根據(jù)下面變換型的數(shù)據(jù)流圖,設(shè)計(jì)出對(duì)應(yīng)的初始軟件結(jié)構(gòu)圖并簡(jiǎn)述相應(yīng)的設(shè)計(jì)步驟。
五、面向?qū)ο蠓椒▽W(xué)基礎(chǔ) 1. 基本概念:
(1)對(duì)象的含義及特點(diǎn)?
(2)類的含義?類與對(duì)象的關(guān)系?(3)消息及消息傳遞的含義及作用?(4)繼承的含義?多態(tài)性機(jī)制?
2.面向?qū)ο蠼<夹g(shù)中的三種模型及各自作用? 3.對(duì)象模型及描述(類圖):對(duì)象(類)的圖形表示;關(guān)系(關(guān)聯(lián)、聚集、繼承)的圖形表示; 4.事件追蹤圖、狀態(tài)圖、用例圖的作用、理解以下概念:
軟件測(cè)試、測(cè)試用例、黑盒測(cè)試、白盒測(cè)試、單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試、驅(qū)動(dòng)模塊、存根模塊、等價(jià)類、邊界值分析測(cè)試、調(diào)試
二、理解以下問題:
1、軟件測(cè)試的含義及目標(biāo)?
2、軟件測(cè)試的過程(步驟)?
3、測(cè)試方案包含的內(nèi)容?
4、白盒測(cè)試的含義及作用?黑盒測(cè)試的含義及作用?
5、各種邏輯覆蓋測(cè)試的含義及使用?
二、理解以下問題:
6、基本路徑測(cè)試法的使用?
7、等價(jià)劃分法的含義、測(cè)試步驟?
8、軟件測(cè)試各階段與前期的哪些文檔相關(guān)?
9、軟件測(cè)試過程如何體現(xiàn)“測(cè)試應(yīng)該從小規(guī)模開始,并逐步進(jìn)行大規(guī)模測(cè)試”的測(cè)試準(zhǔn)則?
10、如何進(jìn)行單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試?
各階段重點(diǎn)測(cè)試的內(nèi)容?
12、測(cè)試和調(diào)試的區(qū)別和聯(lián)系? ◆第5章習(xí)題
1.什么是軟件測(cè)試?
2.什么是測(cè)試用例?設(shè)計(jì)測(cè)試用例時(shí),應(yīng)該考慮哪些因素? 3.闡述單元測(cè)試、集成測(cè)試、有效性測(cè)試之間的區(qū)別。4.下列偽碼程序的功能是“輸入三角形的三個(gè)邊長(zhǎng),判斷
構(gòu)成何種三角形”。
(1)使用條件覆蓋法,為上述程序設(shè)計(jì)白盒測(cè)試用例。
(2)使用等價(jià)類劃分法,為上述程序設(shè)計(jì)黑盒測(cè)試用例 START READ(A,B,C)IF(A≤0)OR(B≤0)OR(C≤0)THEN WRITE(“三角形邊長(zhǎng)不能為零”)
ELSE IF(A+B≤C)OR(A+C≤B)OR(B+C≤A)THEN WRITE(“不能構(gòu)成三角形”)ELSE IF(A=B)AND(B=C)THEN WRITE(“等邊三角形”)
ELSE IF(A=B)OR(B=C)OR(A=C)THEN WRITE(“等腰三角形”)
ELSE WRITE(“一般三角形”)STOP
六、面向?qū)ο蠓治雠c設(shè)計(jì)過程
1.面向?qū)ο蠓治觯∣OA)的任務(wù)?OOA的基本過程?
2.面向?qū)ο笤O(shè)計(jì)(OOD)的主要任務(wù)?OOD與OOA的區(qū)別和聯(lián)系? 3.OOD模型的組成(四部分)及內(nèi)容?
一、理解下列基本概念:
1、對(duì)象的含義及特點(diǎn)?
2、類的含義?類與對(duì)象的關(guān)系?
3、消息及消息傳遞的含義及作用?
4、繼承的含義?多態(tài)性機(jī)制?
5、面向?qū)ο筌浖_發(fā)方法的要點(diǎn)
6、UML的含義及用途?
二、需要掌握的內(nèi)容:
1、面向?qū)ο蠼5闹饕ぷ鳎咳N面向?qū)ο竽P停▽?duì)象模型、動(dòng)態(tài)模型、功能模型)之間的關(guān)系?
2、對(duì)象模型的含義及其表示(類圖);對(duì)象之間的關(guān)系?
類之間的關(guān)系?
3、動(dòng)態(tài)模型的含義及其表示(事件追蹤圖、狀態(tài)圖)
4、功能模型的含義及其表示(數(shù)據(jù)流圖、用例圖)◆第6章習(xí)題
1.解釋以下概念并通過一個(gè)例子加以說明:
對(duì)象;類;關(guān)聯(lián);繼承;聚集
2.為什么面向?qū)ο蠓椒ㄒ獜亩鄠€(gè)側(cè)面(對(duì)象模型、動(dòng)態(tài)模型、功能
模型)建立系統(tǒng)模型。
3.建立符合下列陳述的對(duì)象模型
某圖書館有許多名職員為之工作,職員又進(jìn)一步劃分為館長(zhǎng)
和管理員兩類;館長(zhǎng)可對(duì)圖書借閱工作進(jìn)行管理,每名管理員可
管理多本圖書,每本圖書可由多名管理員管理;圖書擁有許多讀
者,借書證號(hào)惟一地確定一個(gè)讀者;讀者又可分為教師和學(xué)生兩
類,每名教師或?qū)W生可以借閱數(shù)本圖書,每一種圖書可供多名教
師或?qū)W生借閱。
七、軟件維護(hù)
1. 軟件維護(hù)的含義及類型? 2. 軟件維護(hù)過程? 3. ◆需要掌握的內(nèi)容:
4.1、面向?qū)ο蠓治觯∣OA)的任務(wù)?
5.面向?qū)ο蠓治觯∣OA)過程中包括哪些活動(dòng)? 6.
2、三種面向?qū)ο竽P透髯员硎镜膬?nèi)容?
7.3、對(duì)象模型的表示工具?動(dòng)態(tài)模型的表示工具?功能模型的表示工具? 8.
4、結(jié)合軟件開發(fā)實(shí)例,理解三種面向?qū)ο竽P椭g的關(guān)系 9.
以及面向?qū)ο蠓治霏h(huán)節(jié)完成的主要工作。10.
11.---------------? 課堂練習(xí)題目
一、填空題
1.軟件主要包括程序、和 三部分內(nèi)容。
2.軟件可行性研究的任務(wù)是從技術(shù)、和 三個(gè)方面分析軟件項(xiàng)目的可行性。3.軟件測(cè)試的目的是 ;通常把軟件測(cè)試方法分為 和 兩大類。4.結(jié)構(gòu)化分析方法中,功能模型用 描述;數(shù)據(jù)模型用 描述。
5.在類的繼承結(jié)構(gòu)中,不同層次的類共享同一個(gè)行為名稱,但各個(gè)類可以按照自己的需要為同名行為設(shè)計(jì)不同的算法,此性質(zhì)稱為類的__。
二、選擇題
1.產(chǎn)生軟件危機(jī)的主要原因有(C)。
①軟件本身的特點(diǎn) ②用戶使用不當(dāng) ③硬件可靠性差 ④程序員水平⑤缺乏好的開發(fā)方法和管理手段
A.③④ B.①②④ C.①⑤ D.①③
2.需求分析階段,開發(fā)人員需從用戶那里獲得的最重要信息是(C)。A.用戶能接受的開發(fā)費(fèi)用 B.用戶能接受的開發(fā)周期 C.用戶要讓軟件做什么 D.軟件應(yīng)具有何種結(jié)構(gòu) 3.?dāng)?shù)據(jù)流圖中的每個(gè)處理至少有(B)。
A.一個(gè)輸入流或一個(gè)輸出流 B.一個(gè)輸入流和一個(gè)輸出流 C.一個(gè)輸入流 D.一個(gè)輸出流
4.在面向數(shù)據(jù)流的設(shè)計(jì)方法中,一般把數(shù)據(jù)流圖劃分為(C)兩種類型。
A.數(shù)據(jù)流和事務(wù)流 B.變換流和數(shù)據(jù)流 C.變換流和事務(wù)流 D.控制流和事務(wù)流 5.?dāng)?shù)據(jù)流圖所描述的是實(shí)際系統(tǒng)的(A)。
A.邏輯模型 B.物理模型 C.程序流程 D.數(shù)據(jù)結(jié)構(gòu) 6.由變換型數(shù)據(jù)流圖轉(zhuǎn)換成模塊結(jié)構(gòu)圖,其中包括變換模塊,則(B)。
A.變換模塊就是主模塊 B.變換模塊的功能是將邏輯輸入變換為邏輯輸出
C.變換模塊沒有下層模塊 D.變換模塊只能有一個(gè)輸入量、一個(gè)輸出量 7.為了提高軟件測(cè)試的效率,應(yīng)該(C)。
A、在完成編碼以后制定軟件的測(cè)試計(jì)劃 B、取一切可能的數(shù)據(jù)作為測(cè)試數(shù)據(jù) C、選擇發(fā)現(xiàn)錯(cuò)誤可能性大的數(shù)據(jù)作為測(cè)試用例 D、隨機(jī)地選取測(cè)試數(shù)據(jù)
8.有一個(gè)計(jì)算程序,它的輸入量只有一個(gè)X,其范圍是[-1.0,1.0],現(xiàn)從輸入的角度考慮一組測(cè)試用例:-1.001,-1.0,1.0,1.001。設(shè)計(jì)這組測(cè)試用例的方法是(C)A、條件覆蓋法 B、等價(jià)分類法 C、邊界值分析法 D、錯(cuò)誤推測(cè)法
9.關(guān)于單元測(cè)試,正確的是(C)。
A.單元測(cè)試的依據(jù)是概要設(shè)計(jì)說明書 B.單元測(cè)試中不需要使用白盒測(cè)試法
C.單元測(cè)試包括模塊接口測(cè)試 D.單元測(cè)試時(shí)不需要輔助模塊 10.有關(guān)集成測(cè)試的敘述中,(A)是正確的。
A.測(cè)試底層模塊時(shí)不需要樁模塊 B.自底向上測(cè)試方法有利于提前預(yù)計(jì)測(cè)試結(jié)果 C.驅(qū)動(dòng)模塊的作用是模擬被調(diào)模塊 D.自頂向下測(cè)試方法易于設(shè)計(jì)測(cè)試用例 11.(D)表示了類之間的“一般__特殊”關(guān)系。
A.聚集
B.關(guān)聯(lián)
C.消息傳遞
D.繼承
12.OOA模型規(guī)定了一組對(duì)象如何協(xié)同才能完成軟件系統(tǒng)所指定的工作。這種協(xié)同在模型中是以表明對(duì)象通信方式的一組(A)連接來實(shí)現(xiàn)的。
A.消息 B.記錄 C.數(shù)據(jù) D.屬性
13.面向?qū)ο箝_發(fā)方法定義了三種模型來描述系統(tǒng),(B)可以用數(shù)據(jù)流圖來表示
A.對(duì)象模型
B.功能模型
C.動(dòng)態(tài)模型
D.?dāng)?shù)據(jù)模型 14.面向?qū)ο蠓治觯∣OA)的主要活動(dòng)不包括(D)。
A.確定對(duì)象 B.確定屬性 C.確定關(guān)聯(lián) D.確定方式 15.軟件開發(fā)中,階段評(píng)審是非常重要的環(huán)節(jié),其主要目的和作用是(B)。A.減少測(cè)試工作量 B.避免后期付出高代價(jià) C.保證軟件質(zhì)量 D.縮短軟件開發(fā)周期
三、概念解釋
1.軟件危機(jī) 2.軟件生命周期 3.需求分析 4.概要設(shè)計(jì) 5.內(nèi)聚
6、多態(tài)性
7、軟件測(cè)試
8、驅(qū)動(dòng)模塊
四、簡(jiǎn)答題
1.什么是軟件危機(jī)?如何消除軟件危機(jī)?
2.作為某軟件公司的工程師,你將采用結(jié)構(gòu)化方法開發(fā)一套適用于住宅小區(qū)的智能家庭保安系統(tǒng)。簡(jiǎn)述開發(fā)步驟和每個(gè)步驟完成的主要任務(wù)。3.什么是需求分析?簡(jiǎn)述需求分析的基本任務(wù)。4.什么是模塊獨(dú)立性?如何度量和設(shè)計(jì)模塊獨(dú)立性? 5.簡(jiǎn)述變換分析設(shè)計(jì)方法的步驟。6.簡(jiǎn)述對(duì)象和類的概念,二者關(guān)系如何?
7.什么是等價(jià)類劃分測(cè)試法?該方法設(shè)計(jì)測(cè)試用例的主要步驟是什么? 8.軟件測(cè)試要經(jīng)過哪幾個(gè)階段?各階段完成哪些主要工作?
五、應(yīng)用題
1..某商品進(jìn)銷存管理系統(tǒng)的部分功能如下:
(1)倉(cāng)庫(kù)管理員負(fù)責(zé)輸入商品的入/出庫(kù)清單、維護(hù)商品庫(kù)存信息;定時(shí)統(tǒng)計(jì)、打印商品庫(kù)存的月報(bào)表給商品銷售經(jīng)理。
(2)銷售員負(fù)責(zé)輸入商品銷售、退換信息,并打印購(gòu)貨清單給客戶; 商品銷售的相關(guān)信息要存
入相應(yīng)文件。
請(qǐng)畫出描述上述功能的分層數(shù)據(jù)流圖。(畫出頂層、1層和2層數(shù)據(jù)流圖)2.設(shè)有下列語句序列: read(x,y);if(x>1)and(y<=5)then z=x*y else z=x+y;if z=12 then z=2*z;write(z).分別使用語句覆蓋、判定覆蓋、條件覆蓋方法設(shè)計(jì)測(cè)試用例
3、使用PAD圖描述下列算法邏輯:
4.建立描述下列信息的對(duì)象模型:
一所高校包括若干個(gè)系和若干名學(xué)生;每個(gè)系由若干名教師組成;學(xué)生分為研究生和本科生兩類;每個(gè)系開設(shè)若干門課程、任何一門課程只能由一個(gè)系開出;每個(gè)教師可以講授的課程不超過三門、每門課程允許一到兩個(gè)教師講授。
————————————————————————————————————
第三篇:軟件工程復(fù)習(xí)提綱
《軟件工程》課程要點(diǎn)
? 每章教學(xué)課件中的“本章小結(jié)”列出了需要掌握的內(nèi)容 ? 教學(xué)過程中的例題和習(xí)題也是課程重點(diǎn)
一、軟件工程與軟件過程概述
1.概念:
(1)軟件的概念(組成成分、作用);
(2)軟件危機(jī)的含義、表現(xiàn)、產(chǎn)生原因(客觀、主觀)(3)軟件工程學(xué)科包括的內(nèi)容、解決的主要問題
(4)軟件生命周期的含義、組成階段及各階段主要任務(wù) 2.需理解的問題:
(1)軟件與程序的區(qū)別和聯(lián)系?
(2)開發(fā)一個(gè)軟件項(xiàng)目包括哪些基本的步驟?每一步驟完成哪些工作?
(3)主要的軟件過程模型(生命周期模型)有哪些?各自有什么特點(diǎn)?
二、結(jié)構(gòu)化分析-面向數(shù)據(jù)流的分析方法
1.什么是軟件需求?需求分析過程(步驟)? 2.需求分析模型:
(1)功能模型(數(shù)據(jù)流圖DFD)的含義、描述符號(hào)、畫法步驟及規(guī)則(2)數(shù)據(jù)模型(E-R圖)的作用
(3)行為模型(狀態(tài)轉(zhuǎn)換圖)的作用(4)數(shù)據(jù)字典的作用
三、結(jié)構(gòu)化設(shè)計(jì)
1. 軟件設(shè)計(jì)的任務(wù)? 結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析的區(qū)別和聯(lián)系? 2. 軟件設(shè)計(jì)遵循的基本原理及規(guī)則:
(1)模塊化的含義、如何劃分模塊(降低成本、提高獨(dú)立性)?(2)抽象與逐步求精的含義、二者間關(guān)系如何?(3)信息隱藏的含義
(4)如何完善軟件結(jié)構(gòu)(深度、寬度、扇入、扇出、作用域、控制域)? 3. 模塊獨(dú)立性:
(1)模塊獨(dú)立性含義?
(2)模塊獨(dú)立性的度量標(biāo)準(zhǔn):耦合的分類、含義及應(yīng)用;內(nèi)聚的分類、含義及應(yīng)用。4. 概要設(shè)計(jì)(面向數(shù)據(jù)流的設(shè)計(jì)方法)(1)概要設(shè)計(jì)的任務(wù)?
(2)數(shù)據(jù)流圖的類型及特征(變換型、事務(wù)型)(3)變換分析設(shè)計(jì)方法的應(yīng)用(步驟)(4)事務(wù)分析設(shè)計(jì)方法的應(yīng)用(步驟)4.詳細(xì)設(shè)計(jì)(過程設(shè)計(jì))
(1)詳細(xì)設(shè)計(jì)的任務(wù)
(2)結(jié)構(gòu)化程序(設(shè)計(jì))的特征
(3)詳細(xì)設(shè)計(jì)結(jié)果的描述工具:程序流程圖、N-S圖、PAD圖、PDL、判定表
四、軟件測(cè)試
1.軟件測(cè)試基礎(chǔ)
(1)軟件測(cè)試的含義和目的?(2)測(cè)試用例的內(nèi)容(輸入數(shù)據(jù)、預(yù)期輸出結(jié)果)?(3)主要測(cè)試方法(黑盒測(cè)試、白盒測(cè)試)的含義?
2.主要的白盒測(cè)試技術(shù)及應(yīng)用-------邏輯覆蓋法?基本路徑測(cè)試方法? 3.主要的黑盒測(cè)試技術(shù)及應(yīng)用-------等價(jià)類法? 邊界值分析法? 4.軟件測(cè)試的過程?
(1)單元測(cè)試(采用的測(cè)試方法;測(cè)試內(nèi)容)
(2)集成測(cè)試(采用的測(cè)試方法;測(cè)試內(nèi)容;模塊組裝策略)(3)確認(rèn)測(cè)試(采用的測(cè)試方法;測(cè)試內(nèi)容;α測(cè)試與β測(cè)試?)(4)輔助模塊的含義及作用(驅(qū)動(dòng)模塊、存根模塊?)
五、面向?qū)ο蠓椒▽W(xué)基礎(chǔ) 1. 基本概念:
(1)對(duì)象的含義及特點(diǎn)?
(2)類的含義?類與對(duì)象的關(guān)系?(3)消息及消息傳遞的含義及作用?(4)繼承的含義?多態(tài)性機(jī)制?
2.面向?qū)ο蠼<夹g(shù)中的三種模型及各自作用? 3.對(duì)象模型及描述(類圖):對(duì)象(類)的圖形表示;關(guān)系(關(guān)聯(lián)、聚集、繼承)的圖形表示; 4.事件追蹤圖、狀態(tài)圖、用例圖的作用
六、面向?qū)ο蠓治雠c設(shè)計(jì)過程
1.面向?qū)ο蠓治觯∣OA)的任務(wù)?OOA的基本過程?
2.面向?qū)ο笤O(shè)計(jì)(OOD)的主要任務(wù)?OOD與OOA的區(qū)別和聯(lián)系? 3.OOD模型的組成(四部分)及內(nèi)容?
七、軟件維護(hù)
1. 軟件維護(hù)的含義及類型? 2. 軟件維護(hù)過程?
---------------? 課堂練習(xí)題目
一、填空題
1.軟件主要包括程序、和 三部分內(nèi)容。
2.軟件可行性研究的任務(wù)是從技術(shù)、和 三個(gè)方面分析軟件項(xiàng)目的可行性。3.軟件測(cè)試的目的是 ;通常把軟件測(cè)試方法分為 和 兩大類。4.結(jié)構(gòu)化分析方法中,功能模型用 描述;數(shù)據(jù)模型用 描述。
5.在類的繼承結(jié)構(gòu)中,不同層次的類共享同一個(gè)行為名稱,但各個(gè)類可以按照自己的需要為同名行為設(shè)計(jì)不同的算法,此性質(zhì)稱為類的__。
二、選擇題
1.產(chǎn)生軟件危機(jī)的主要原因有()。
①軟件本身的特點(diǎn) ②用戶使用不當(dāng) ③硬件可靠性差 ④程序員水平⑤缺乏好的開發(fā)方法和管理手段
A.③④ B.①②④ C.①⑤ D.①③
2.需求分析階段,開發(fā)人員需從用戶那里獲得的最重要信息是()。A.用戶能接受的開發(fā)費(fèi)用 B.用戶能接受的開發(fā)周期 C.用戶要讓軟件做什么 D.軟件應(yīng)具有何種結(jié)構(gòu) 3.?dāng)?shù)據(jù)流圖中的每個(gè)處理至少有()。
A.一個(gè)輸入流或一個(gè)輸出流 B.一個(gè)輸入流和一個(gè)輸出流 C.一個(gè)輸入流 D.一個(gè)輸出流
4.在面向數(shù)據(jù)流的設(shè)計(jì)方法中,一般把數(shù)據(jù)流圖劃分為()兩種類型。
A.數(shù)據(jù)流和事務(wù)流 B.變換流和數(shù)據(jù)流 C.變換流和事務(wù)流 D.控制流和事務(wù)流 5.?dāng)?shù)據(jù)流圖所描述的是實(shí)際系統(tǒng)的()。
A.邏輯模型 B.物理模型 C.程序流程 D.數(shù)據(jù)結(jié)構(gòu) 6.由變換型數(shù)據(jù)流圖轉(zhuǎn)換成模塊結(jié)構(gòu)圖,其中包括變換模塊,則()。
A.變換模塊就是主模塊 B.變換模塊的功能是將邏輯輸入變換為邏輯輸出
C.變換模塊沒有下層模塊 D.變換模塊只能有一個(gè)輸入量、一個(gè)輸出量 7.為了提高軟件測(cè)試的效率,應(yīng)該()。
A、在完成編碼以后制定軟件的測(cè)試計(jì)劃 B、取一切可能的數(shù)據(jù)作為測(cè)試數(shù)據(jù) C、選擇發(fā)現(xiàn)錯(cuò)誤可能性大的數(shù)據(jù)作為測(cè)試用例 D、隨機(jī)地選取測(cè)試數(shù)據(jù)
8.有一個(gè)計(jì)算程序,它的輸入量只有一個(gè)X,其范圍是[-1.0,1.0],現(xiàn)從輸入的角度考慮一組測(cè)試用例:-1.001,-1.0,1.0,1.001。設(shè)計(jì)這組測(cè)試用例的方法是()A、條件覆蓋法 B、等價(jià)分類法 C、邊界值分析法 D、錯(cuò)誤推測(cè)法
9.關(guān)于單元測(cè)試,正確的是()。
A.單元測(cè)試的依據(jù)是概要設(shè)計(jì)說明書 B.單元測(cè)試中不需要使用白盒測(cè)試法
C.單元測(cè)試包括模塊接口測(cè)試 D.單元測(cè)試時(shí)不需要輔助模塊 10.有關(guān)集成測(cè)試的敘述中,()是正確的。
A.測(cè)試底層模塊時(shí)不需要樁模塊 B.自底向上測(cè)試方法有利于提前預(yù)計(jì)測(cè)試結(jié)果 C.驅(qū)動(dòng)模塊的作用是模擬被調(diào)模塊 D.自頂向下測(cè)試方法易于設(shè)計(jì)測(cè)試用例 11.()表示了類之間的“一般__特殊”關(guān)系。
A.聚集
B.關(guān)聯(lián)
C.消息傳遞
D.繼承
12.OOA模型規(guī)定了一組對(duì)象如何協(xié)同才能完成軟件系統(tǒng)所指定的工作。這種協(xié)同在模型中是以表明對(duì)象通信方式的一組()連接來實(shí)現(xiàn)的。
A.消息 B.記錄 C.數(shù)據(jù) D.屬性
13.面向?qū)ο箝_發(fā)方法定義了三種模型來描述系統(tǒng),()可以用數(shù)據(jù)流圖來表示
A.對(duì)象模型
B.功能模型
C.動(dòng)態(tài)模型
D.?dāng)?shù)據(jù)模型 14.面向?qū)ο蠓治觯∣OA)的主要活動(dòng)不包括()。
A.確定對(duì)象 B.確定屬性 C.確定關(guān)聯(lián) D.確定方式 15.軟件開發(fā)中,階段評(píng)審是非常重要的環(huán)節(jié),其主要目的和作用是()。A.減少測(cè)試工作量 B.避免后期付出高代價(jià) C.保證軟件質(zhì)量 D.縮短軟件開發(fā)周期
三、概念解釋
1.軟件危機(jī) 2.軟件生命周期 3.需求分析 4.概要設(shè)計(jì) 5.內(nèi)聚
6、多態(tài)性
7、軟件測(cè)試
8、驅(qū)動(dòng)模塊
四、簡(jiǎn)答題
1.什么是軟件危機(jī)?如何消除軟件危機(jī)?
2.作為某軟件公司的工程師,你將采用結(jié)構(gòu)化方法開發(fā)一套適用于住宅小區(qū)的智能家庭保安系統(tǒng)。簡(jiǎn)述開發(fā)步驟和每個(gè)步驟完成的主要任務(wù)。3.什么是需求分析?簡(jiǎn)述需求分析的基本任務(wù)。4.什么是模塊獨(dú)立性?如何度量和設(shè)計(jì)模塊獨(dú)立性? 5.簡(jiǎn)述變換分析設(shè)計(jì)方法的步驟。6.簡(jiǎn)述對(duì)象和類的概念,二者關(guān)系如何?
7.什么是等價(jià)類劃分測(cè)試法?該方法設(shè)計(jì)測(cè)試用例的主要步驟是什么? 8.軟件測(cè)試要經(jīng)過哪幾個(gè)階段?各階段完成哪些主要工作?
五、應(yīng)用題
1..某商品進(jìn)銷存管理系統(tǒng)的部分功能如下:
(1)倉(cāng)庫(kù)管理員負(fù)責(zé)輸入商品的入/出庫(kù)清單、維護(hù)商品庫(kù)存信息;定時(shí)統(tǒng)計(jì)、打印商品庫(kù)存的月報(bào)表給商品銷售經(jīng)理。
(2)銷售員負(fù)責(zé)輸入商品銷售、退換信息,并打印購(gòu)貨清單給客戶; 商品銷售的相關(guān)信息要存
入相應(yīng)文件。
請(qǐng)畫出描述上述功能的分層數(shù)據(jù)流圖。(畫出頂層、1層和2層數(shù)據(jù)流圖)2.設(shè)有下列語句序列: read(x,y);if(x>1)and(y<=5)then z=x*y else z=x+y;if z=12 then z=2*z;write(z).分別使用語句覆蓋、判定覆蓋、條件覆蓋方法設(shè)計(jì)測(cè)試用例
3、使用PAD圖描述下列算法邏輯:
4.建立描述下列信息的對(duì)象模型:
一所高校包括若干個(gè)系和若干名學(xué)生;每個(gè)系由若干名教師組成;學(xué)生分為研究生和本科生兩類;每個(gè)系開設(shè)若干門課程、任何一門課程只能由一個(gè)系開出;每個(gè)教師可以講授的課程不超過三門、每門課程允許一到兩個(gè)教師講授。
————————————————————————————————————
第四篇:軟件工程總結(jié)
軟件工程課程總結(jié)
摘要:
計(jì)算機(jī)是20世紀(jì)最重大的科學(xué)技巧成就之一,使當(dāng)代社會(huì)的經(jīng)濟(jì)、軍事、科研、教育、服務(wù)等方面在概念和技巧上發(fā)生了性的變化,對(duì)人類社會(huì)的進(jìn)步已經(jīng)并還將產(chǎn)生極為深刻的影響。目前,計(jì)算機(jī)是世界各發(fā)達(dá)國(guó)度劇烈競(jìng)爭(zhēng)的科學(xué)技巧領(lǐng)域之一。
電子計(jì)算機(jī)早期功效主要是計(jì)算,后來已遠(yuǎn)遠(yuǎn)超越單純計(jì)算的功效,還可模擬、思維、進(jìn)行自適應(yīng)反饋處理等等,把它叫做“電腦”更為合實(shí)際。由于電子計(jì)算機(jī)功效的飛躍性發(fā)展,應(yīng)用于生產(chǎn)和生活的各個(gè)方面,直接和顯著地提高了生產(chǎn)、工作和生活的效率、節(jié)奏和水平,在軟科學(xué)研究和應(yīng)用中它也起著關(guān)鍵作用,因此它已被公認(rèn)是現(xiàn)代技巧的神經(jīng)中樞,是未來信息社會(huì)的心臟和錄魂。計(jì)算機(jī)學(xué)科分為四個(gè)領(lǐng)域,分別是計(jì)算機(jī)科學(xué),計(jì)算機(jī)工程,軟件工程和信息系統(tǒng)。
正文:
軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護(hù)軟件,以及如何把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來的學(xué)科。包括項(xiàng)目管理,分析,設(shè)計(jì),程序的編寫,測(cè)試和質(zhì)量控制。它涉及到程序設(shè)計(jì)語言、數(shù)據(jù)庫(kù)、軟件開發(fā)工具、系統(tǒng)開發(fā)平臺(tái)、標(biāo)準(zhǔn)、設(shè)計(jì)模式等方面。
學(xué)了《軟件工程》這門課程和一些有關(guān)資料后,感覺一些東西都曾經(jīng)接觸過,但在實(shí)際工作中有些理論要完全遵循可能還有些障礙,軟件工程只是提供了理論上的一些結(jié)論,但對(duì)項(xiàng)目的具體可操作性的規(guī)范的制定方面卻做的很少,《軟件工程》發(fā)展了幾十年,光是開發(fā)模型就達(dá)到了10多種,對(duì)不同的項(xiàng)目采用合適的開發(fā)模式,有些項(xiàng)目在不同的開發(fā)階段可能還要轉(zhuǎn)換開發(fā)模式,把它們靈活的應(yīng)用到實(shí)際中還是很困難的。
軟件技術(shù)是信息技術(shù)產(chǎn)業(yè)的核心之一,軟件技術(shù)的發(fā)展是與信息技術(shù)產(chǎn)業(yè)的發(fā)展互相促進(jìn)的。當(dāng)今世界,信息技術(shù)正處于新一輪重大技術(shù)突破的前夜。預(yù)計(jì)今后 20~30 年是信息科學(xué)技術(shù)的變革突破期,可能導(dǎo)致 21 世紀(jì)下半葉一場(chǎng)新的信息技術(shù)革命。近年來,從 IT 界到一些國(guó)家首腦,都高度關(guān)注以物聯(lián)網(wǎng)為標(biāo)志的新一輪信息技術(shù)的發(fā)展態(tài)勢(shì),認(rèn)為這是繼 20 世紀(jì) 80 年代 PC 機(jī)、90 年代互聯(lián)網(wǎng)、移動(dòng)通信網(wǎng)之后,將引發(fā) IT 業(yè)突破性發(fā)展的第三次 IT 產(chǎn)業(yè)化浪潮。每一次重大的技術(shù)變革都會(huì)引起企業(yè)間、產(chǎn)業(yè)間甚至國(guó)家間競(jìng)爭(zhēng)格局的重大變化,也促進(jìn)了軟件技術(shù)與軟件產(chǎn)業(yè)的重大變革與發(fā)展。
近年來,信息技術(shù)、軟件技術(shù)、軟件系統(tǒng)與軟件產(chǎn)業(yè)的發(fā)展備受關(guān)注,已有不少論述、分析與判斷。近10 年內(nèi)網(wǎng)絡(luò)技術(shù)經(jīng)歷寬帶化、移動(dòng)化和三網(wǎng)融合將走向基于 Ipv6 的下一代互聯(lián)網(wǎng),2010 年 1 月,國(guó)家 863 計(jì)劃信息技術(shù)領(lǐng)域辦公室和國(guó)家 863 計(jì)劃信息技術(shù)領(lǐng)域?qū)<医M,在上海舉辦“信息-物理融合系統(tǒng) CPS發(fā)展戰(zhàn)略論壇”,提出“信息-物理融合系統(tǒng) CPS 是一個(gè)綜合計(jì)算、網(wǎng)絡(luò)和物理環(huán)境的多維復(fù)雜系統(tǒng),是信息和物理世界的深度的融合交互,可實(shí)現(xiàn)大型工程系統(tǒng)的實(shí)時(shí)感知、動(dòng)態(tài)控制和信息服務(wù),使系統(tǒng)更加可靠、高效與實(shí)時(shí)協(xié)同,使得人類物理現(xiàn)實(shí)和虛擬邏輯逐步融合,具有重要而廣泛的應(yīng)用前景。業(yè)界關(guān)于軟件工程的代表性觀點(diǎn)創(chuàng)立與使用健全的工程原則,以便經(jīng)濟(jì)地獲得可靠且高效率的軟件。應(yīng)用系統(tǒng)化,遵從原則,可被計(jì)量的方法來發(fā)展、操作及維護(hù)軟件;也就是把工程應(yīng)用到軟件上。與開發(fā)、管理及更新軟件產(chǎn)品有關(guān)的理論、方法及工具。一種知識(shí)或?qū)W科,目標(biāo)是生產(chǎn)品質(zhì)良好、準(zhǔn)時(shí)交貨、符合預(yù)算,滿足用戶所需的軟件。實(shí)際應(yīng)用科學(xué)知識(shí)在設(shè)計(jì)、建構(gòu)電腦程序,與相伴而來所產(chǎn)生的文件,以及后續(xù)的操作和維護(hù)上。
6使用與系統(tǒng)化生產(chǎn)和維護(hù)軟件產(chǎn)品有關(guān)之技術(shù)與管理的知識(shí),使軟件開發(fā)與修改可在有限的時(shí)間與費(fèi)用下進(jìn)行。
7建造由工程師團(tuán)隊(duì)所開發(fā)之大型軟件系統(tǒng)有關(guān)的知識(shí)學(xué)科。對(duì)軟件分析、設(shè)計(jì)、實(shí)施及維護(hù)的一種系統(tǒng)化方法。系統(tǒng)化地應(yīng)用工具和技術(shù)于開發(fā)以計(jì)算機(jī)為主的應(yīng)用。
10軟件工程是關(guān)于設(shè)計(jì)和開發(fā)優(yōu)質(zhì)軟件。
《軟件工程》是一門綜合性和實(shí)踐性很強(qiáng)的核心課程,它屬于是一門交叉學(xué)科,包含有:軟件開發(fā)技術(shù)(軟件開發(fā)方法學(xué)、軟件開發(fā)過程、軟件工具和軟件工程環(huán)境)、軟件工程管理(軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué))。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、編碼、軟件測(cè)試、項(xiàng)目計(jì)劃與管理。
本課程是面向準(zhǔn)備從事軟件開發(fā)的畢業(yè)生而開設(shè)的一門專業(yè)課程。針對(duì)計(jì)算機(jī)教學(xué)中軟件工程這一薄弱環(huán)結(jié),結(jié)合目前軟件開發(fā)商對(duì)人才的要求,對(duì)計(jì)算機(jī)專業(yè)的畢業(yè)生進(jìn)行軟件工程強(qiáng)化培訓(xùn),目的是使畢業(yè)生能夠了解和掌握軟件工程的基本理論和方法,并在實(shí)際軟件開發(fā)中運(yùn)用這些方法。
我理解,軟件工程是按照工程學(xué)的管理方式,有組織、有計(jì)劃的,在一定的質(zhì)量基礎(chǔ)、時(shí)間限度和成本范圍內(nèi),實(shí)現(xiàn)功能明確的軟件系統(tǒng)。而且,軟件工程在企業(yè)范圍內(nèi)運(yùn)行,一定需要企業(yè)資源的支持,要與企業(yè)的經(jīng)營(yíng)、決策、管理體系聯(lián)系在一起,才能夠被踏踏實(shí)實(shí)的落實(shí)下來。
軟件工程項(xiàng)目是一個(gè)需要一步一步的計(jì)算,分析思考而來的,需要不斷思考,研究不斷進(jìn)步,軟件業(yè)作為一個(gè)服務(wù)業(yè),要想得到發(fā)展,首先必須形成一個(gè)對(duì)軟件服務(wù)有迫切需要的市場(chǎng)。其次,這個(gè)市場(chǎng)中的消費(fèi)者必須具備足夠的購(gòu)買力。軟件的消費(fèi)群體簡(jiǎn)單一點(diǎn),可以分為個(gè)體消費(fèi)和企業(yè)消費(fèi)。中國(guó)的企業(yè)群體,數(shù)量龐大,但是質(zhì)量不高。上規(guī)模的企業(yè)極少。國(guó)內(nèi)目前能夠形成比較大規(guī)模的獨(dú)立市場(chǎng)的,肯定是小規(guī)模的軟件系統(tǒng)。
隨著信息化時(shí)代的到來其地位越來越受到人們的重視,軟件工程從一個(gè)學(xué)科,或是某一個(gè)研究方向來說,人員僅僅是過程,方法的執(zhí)行者,所以人員素質(zhì)往往被忽略,軟件工程是一門實(shí)踐性很強(qiáng)的學(xué)科,所以在實(shí)際的軟件研究過程中,人員的素質(zhì)占有很重要的地位。要有出色的軟件問世,研發(fā)人員的素質(zhì)至關(guān)重要!
作為軟件工程的學(xué)習(xí)者應(yīng)該不斷創(chuàng)新,不斷嘗試、實(shí)踐,不斷研究和學(xué)習(xí),中國(guó)的軟件工程技術(shù)依舊滯后于國(guó)外一些軟件工程技術(shù),作為新一代的學(xué)習(xí)者應(yīng)該擔(dān)當(dāng)起振興起中國(guó)軟件事業(yè),使中國(guó)科技得到高速發(fā)展!
現(xiàn)在已經(jīng)是信息化時(shí)代,信息化潮流不斷涌現(xiàn),想要掌握主動(dòng)權(quán)就是掌握信息化的發(fā)展方向,這就需要我們不斷學(xué)習(xí),時(shí)間,研究,學(xué)習(xí)國(guó)外的先進(jìn)技術(shù),轉(zhuǎn)變自己的技術(shù),然后融合,創(chuàng)新。
軟件技術(shù)不是一成不變的,是隨著社會(huì)的進(jìn)步的不斷進(jìn)步,不需要不斷的創(chuàng)新,不斷的改善的,需要我們不斷的學(xué)習(xí),不斷的研究,不斷進(jìn)步。
第五篇:軟件工程總結(jié)
1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b
1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b
Chapter 10 Self-Check Quiz
1.In the most general sense a component is a modular building block for computer software.a.True b.False
Answer: a(Section 10.1)
2.In the context of object-oriented software engineering a component contains
a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes
Answer: d(Section 10.1.1)
3.In traditional software engineering modules must serve in which of the following roles?
a.Control component b.Infrastructure component c.Problem domain component d.All of the above
Answer: d(Section 10.1.2)
4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False
Answer: b(Section 10.1.3)
5.Which of the following is not one of the four principles used to guide component-level design?
a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle
Answer: d(Section 10.2.1)
6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False
Answer: a(Section 10.2.2)
7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False
Answer: a(Section 10.2.3)
8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False
Answer: b(Section 10.2.4)
9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False
Answer: b(Section 10.4.1)
10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False
Answer: a(Section 10.4.2)
11.Which of these is a graphical notation for depicting procedural detail?
a.box diagram b.decision table c.ER diagram d.flowchart
Answer: d(Section 10.5.1)
12.A decision table should be used
a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component
Answer: d(Section 10.5.2)
13.A program design language(PDL)is often a
a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture
Answer: a(Section 10.5.3)
14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False
Answer: a(Section 10.6)
15.Which of the following is not one of the major activities of domain engineering?
a.analysis b.construction c.dissemination d.validation
Answer: d(Section 10.6.1)
16.Which of the following factors would not be considered during component qualification?
a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required
Answer: d(Section 10.6.2)
17.Which is the following is a technique used for component wrapping?
a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping
Answer: b(Section 10.6.2)
18.Which of the following is not one of the issues that form a basis for design for reuse?
a.object-oriented programming b.program templates c.standard data d.standard interface protocols
Answer: a(Section 10.6.3)
19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above
Answer: c(Section 10.6.4)
1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)
2.Which of the following is not a characteristic common to all design methods?
a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics
Answer: a(Section 8.2.2)
3.Which of the following can be used to represent the architectural design of a piece of software?
a.Dynamic models b.Functional models c.Structural models d.All of the above
Answer: d(Section 8.3.2)
4.Design patterns are not applicable to the design of object-oriented software?
a.True b.False
Answer: b(Section 8.3.3)
5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False
Answer: b(Section 8.3.5)
6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality
a.True b.False
Answer: a(Section 8.3.6)
7.Cohesion is a qualitative indication of the degree to which a module
a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)
8.Coupling is a qualitative indication of the degree to which a module
a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)
9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False
Answer: b(Section 8.3.8)
10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False
Answer: a(Section 8.3.10)
11.Which of the following is not one of the five design class types
a.Business domain classes b.Entity classes c.Process classes d.User interface classes
Answer: b(Section 8.3.13)
12.Which design model elements are used to depict a model of information represented from the user’s view?
a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements
Answer: c(Section 8.4.1)
13.Which design is equivalent to the floor plan of a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: a(Section 8.4.2)
14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: d(Section 8.4.3)
15.Which design model is equivalent to a set of detailed drawings for each room in a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: b(Section 8.4.4)
16.The deployment design elements specify the build order for the software components.a.True b.False
Answer: b(Section 8.4.5)