欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      軟件工程復(fù)習(xí)知識(shí)點(diǎn)總結(jié)

      時(shí)間:2019-05-12 12:27:06下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《軟件工程復(fù)習(xí)知識(shí)點(diǎn)總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《軟件工程復(fù)習(xí)知識(shí)點(diǎn)總結(jié)》。

      第一篇:軟件工程復(fù)習(xí)知識(shí)點(diǎn)總結(jié)

      1.軟件危機(jī)的概念,內(nèi)容,原因及消除的途徑; 2.軟件工程的定義,基本原理;

      3.軟件工程方法學(xué)的基本概念、內(nèi)容;

      4.軟件生命周期的具體內(nèi)容,每一個(gè)階段的任務(wù)是什么?結(jié)合具體的工程例子來(lái)理解做軟件項(xiàng)目主要分那幾個(gè)階段。

      5.理解幾個(gè)典型軟件過(guò)程的內(nèi)容及其優(yōu)點(diǎn)與缺點(diǎn):瀑布模型、增量模型、快速原型模型、螺旋模型、噴泉模型等; 6.了解可行性研究中的任務(wù)和過(guò)程;

      7.掌握系統(tǒng)流程圖的概念和方法,會(huì)從具體的案例中抽象出系統(tǒng)流程圖; 8.掌握數(shù)據(jù)流圖的概念和方法,會(huì)從具體的案例中畫出0層數(shù)據(jù)流圖和功能級(jí)數(shù)據(jù)流圖;

      9.掌握數(shù)據(jù)字典的內(nèi)容、方法、用戶和實(shí)現(xiàn); 10.了解成本/效益分析方法;

      11.了解需求分析過(guò)程中任務(wù)是什么.12.理解面向數(shù)據(jù)流自頂向下逐步求精的方法和意義;

      13.理解分析及建模的意義,需求分析中應(yīng)該建立哪三種模型?有哪些工具來(lái)幫助建立這些模型?

      14.掌握實(shí)體關(guān)系(E-R)圖的概念,內(nèi)容和實(shí)現(xiàn)方法,能結(jié)合具體實(shí)例建立實(shí)體關(guān)系圖;

      15.掌握狀態(tài)圖的概念,內(nèi)容,實(shí)現(xiàn)方法和作用;

      16.掌握層次方框圖、warnier圖、IPO圖的概念,內(nèi)容和作用; 17.有窮狀態(tài)機(jī)的概念和內(nèi)容;

      18.總體設(shè)計(jì)是做什么?總體設(shè)計(jì)的過(guò)程是怎樣的?總體結(jié)構(gòu)設(shè)計(jì)的目的是什么?

      19.掌握幾個(gè)設(shè)計(jì)原理,理解他們的內(nèi)容和意義;

      20.掌握耦合和內(nèi)聚的概念和內(nèi)容,理解這些原理對(duì)設(shè)計(jì)有哪些指導(dǎo)意義; 21.耦合包含了哪些類型?每個(gè)類型的具體內(nèi)容是什么?要求能通過(guò)程序代碼識(shí)別出耦合類型。

      22.啟發(fā)性規(guī)則的內(nèi)容及部分概念。23.層次圖、HIPO圖和結(jié)構(gòu)圖的內(nèi)容;

      24.掌握面向數(shù)據(jù)流的設(shè)計(jì)方法,了解其中涉及到的概念(變換流,事務(wù)流),結(jié)合例子理解變換分析的具體過(guò)程。25.詳細(xì)設(shè)計(jì)是做什么? 26.什么是結(jié)構(gòu)程序設(shè)計(jì)?

      27.人機(jī)界面設(shè)計(jì)問(wèn)題包含哪些?

      28.掌握設(shè)計(jì)過(guò)程中用到的工具:程序流程圖的概念,內(nèi)容和方法;盒圖的概念、內(nèi)容和方法;會(huì)結(jié)合實(shí)例使用這些工具;掌握PAD 圖的概念和內(nèi)容;掌握判定表的概念和內(nèi)容。要結(jié)合實(shí)例來(lái)掌握它們。

      29.了解結(jié)合Jackson圖來(lái)掌握面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法;會(huì)用Jackson程序設(shè)計(jì)方法對(duì)具體的實(shí)例進(jìn)行設(shè)計(jì)。

      30.掌握幾種測(cè)試:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試、白盒測(cè)試技術(shù)和黑盒測(cè)試技術(shù);掌握它們的概念,內(nèi)容和方法;

      31.對(duì)每一種測(cè)試方法,理解其具體細(xì)節(jié):比如理解什么是漸增式測(cè)試和非漸增式測(cè)試,什么是Alpha測(cè)試和Beta測(cè)試.....; 32.結(jié)合G.J.Myers的觀點(diǎn)理解軟件測(cè)試的目的;(教材p150)33.掌握白盒測(cè)試的技術(shù)細(xì)節(jié)(比如:掌握邏輯覆蓋中的8個(gè)覆蓋點(diǎn);掌握基本路徑測(cè)試,會(huì)根據(jù)過(guò)程設(shè)計(jì)結(jié)果畫出相應(yīng)的流圖;會(huì)計(jì)算流圖的環(huán)形復(fù)雜度;會(huì)計(jì)算出線性獨(dú)立路徑的基本集合);掌握黑盒測(cè)試的技術(shù)細(xì)節(jié); 34.理解軟件維護(hù)的定義、特點(diǎn)和維護(hù)過(guò)程; 自測(cè)練習(xí)題:

      一、選擇題

      1.瀑布模型的存在問(wèn)題是()

      A.用戶容易參與開發(fā)

      B.缺乏靈活性

      C.用戶與開發(fā)者易溝通

      D.適用可變需求

      2.可行性分析是在系統(tǒng)開發(fā)的早期所做的一項(xiàng)重要的論證工作,它是決定該系統(tǒng)是否開發(fā)的決策依據(jù),因必須給出()的回答。

      A.確定

      B.行或不行

      C.正確

      D.無(wú)二義

      3. 系統(tǒng)流程圖是用來(lái)

      ()

      A 描繪程序結(jié)構(gòu)的 B 描繪系統(tǒng)的邏輯模型

      C 表示信息層次結(jié)構(gòu)的圖形工具 D 描繪物理系統(tǒng)的 4.下列屬于維護(hù)階段的文檔是()

      A.軟件規(guī)格說(shuō)明

      B.用戶操作手冊(cè)

      C.軟件問(wèn)題報(bào)告

      D.軟件測(cè)試分析報(bào)告 5.軟件按照設(shè)計(jì)的要求,在規(guī)定時(shí)間和條件下達(dá)到不出故障,持續(xù)運(yùn)行的要求的質(zhì)量特性稱為()

      A.可用性

      B.可靠性

      C.正確性

      D.完整性

      6、快速原型模型的主要特點(diǎn)之一是()A.開發(fā)完畢才見(jiàn)到產(chǎn)品

      B.及早提供全部完整的軟件產(chǎn)品 C.開發(fā)完畢后才見(jiàn)到工作軟件 D.及早提供工作軟件

      7、軟件需求分析的主要任務(wù)是準(zhǔn)確地定義出要開發(fā)的軟件系統(tǒng)是()A.如何做

      B.怎么做 C.做什么

      D.對(duì)誰(shuí)做

      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.研究開發(fā)所需要的成本和資源是屬于可行性研究中的研究的一方面。()A.技術(shù)可行性

      B.經(jīng)濟(jì)可行性 C.社會(huì)可行性

      D.法律可行性 10.模塊的內(nèi)聚性最高的是()A.邏輯內(nèi)聚

      B.時(shí)間內(nèi)聚 C.偶然內(nèi)3 聚

      D.功能內(nèi)聚

      12.()是把對(duì)象的屬性和操作結(jié)合在一起,構(gòu)成一個(gè)獨(dú)立的對(duì)象,其內(nèi)部信息對(duì)外界是隱蔽的,外界只能通過(guò)有限的接口與對(duì)象發(fā)生聯(lián)系。A 多態(tài)性 B 繼承 C 封裝 D 消息

      二、填空題

      1.將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)時(shí), 所用映射方法涉及信息流的類型。其信息流分為 和 兩種類型。

      2.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的_ _____兩部分組成。3.軟件由程序、、組成。

      4.在學(xué)校中,一個(gè)學(xué)生可以選修多門課程,一門課程可以由多個(gè)學(xué)生選修,那么學(xué)生和課程之間是

      關(guān)系。

      5.軟件工程釆用層次化的方法,每個(gè)層次都包括、方法、三要素。6.一個(gè)模塊擁有的直屬下級(jí)模塊的個(gè)數(shù)稱為,一個(gè)模塊的直接上級(jí)模塊的個(gè)數(shù)稱為。

      三、名詞解釋題 1.內(nèi)聚性 2.軟件危機(jī) 3.完善性維護(hù) 4.數(shù)據(jù)字典 5.程序流圖 6.驅(qū)動(dòng)程序 7.數(shù)據(jù)耦合 8.類圖

      9.Alpha測(cè)試與Beta測(cè)試 10.軟件產(chǎn)品

      四、簡(jiǎn)答題

      1.黑盒測(cè)試旨在測(cè)試軟件是否滿足功能要求,它主要診斷哪幾類錯(cuò)誤? 2.瀑布模型、增量模型的優(yōu)缺點(diǎn)

      3.程序流程圖或者盒圖的5種基本結(jié)構(gòu)的畫法 4.簡(jiǎn)述過(guò)程設(shè)計(jì)語(yǔ)言(PDL)的特點(diǎn)。

      5.根據(jù)特定的項(xiàng)目,你會(huì)考慮哪些因素來(lái)選擇合適的程序設(shè)計(jì)語(yǔ)言。6.(教材P141)畫出下列偽碼程序的程序流程圖和盒圖 START IF p THEN WHILE q DO f END DO ELSE BLOCK 4 g n END BLOCK END IF STOP 7.(教材P141)研究下面的PDL語(yǔ)言(過(guò)程設(shè)計(jì)語(yǔ)言,也稱偽碼程序): LOOP: Set I to(START + FINISH)/2 If TABLE(I)=ITEM goto FOUND If TABLE(I)ITEM Set FINISH to(I-1)If(FINISH-START)> 1 goto LOOP If TABLE(START)=ITEM goto FOUND If TABLE(FINISH)= ITEM goto FOUND Set FLAG to 0 Goto DONE FOUND: Set FLAG to 1 DONE:Exit 1.畫出程序流圖和N-S盒圖。2.此程序的功能是什么?

      五、綜合題(三題分別5,7,8分,共20分)

      1.某培訓(xùn)中心要研制一個(gè)計(jì)算機(jī)管理系統(tǒng)。它的業(yè)務(wù)是: 將學(xué)員發(fā)來(lái)的信件收集分類后,按幾種不同的情況處理。

      如果是報(bào)名的,則將報(bào)名數(shù)據(jù)送給負(fù)責(zé)報(bào)名事務(wù)的職員,他們將查閱課程文件,檢查該課程是否額滿,然后在學(xué)生文件、課程文件上登記,并開出報(bào)告單交財(cái)務(wù)部門,財(cái)務(wù)人員開出發(fā)票給學(xué)生。

      如果是想注銷原來(lái)已選修的課程,則由注銷人員在課程文件、學(xué)生文件和帳目文件上做相應(yīng)的修改,并給學(xué)生注銷單。

      3)如果是付款的,則由財(cái)務(wù)人員在帳目文件上登記,也給學(xué)生一張收費(fèi)收據(jù)。要求:

      (1).對(duì)以上問(wèn)題畫出功能級(jí)數(shù)據(jù)流程圖。(2).畫出該培訓(xùn)管理的軟件結(jié)構(gòu)圖。

      2.某旅館的電話服務(wù)如下:

      可以撥分機(jī)號(hào)和外線號(hào)碼。分機(jī)號(hào)是從7201至7299。外線號(hào)碼先撥9,然后是市話號(hào)碼或長(zhǎng)話號(hào)碼。長(zhǎng)話號(hào)碼是以區(qū)號(hào)和市話號(hào)碼組成。區(qū)號(hào)是從100到300中任意的數(shù)字串。市話號(hào)碼是以局號(hào)和分局號(hào)組成。局號(hào)可以是455,466,888,552中任意一個(gè)號(hào)碼。分局號(hào)是任意長(zhǎng)度為4的數(shù)字串。

      要求:寫出在數(shù)據(jù)字典中,電話號(hào)碼的數(shù)據(jù)條目的定義即組成。

      3.軟件測(cè)試的過(guò)程包括哪些?黑盒測(cè)試與白盒測(cè)試的具體內(nèi)容是什么?它們分別針對(duì)哪幾類錯(cuò)誤?

      一.集成測(cè)試中自頂向下集成和自底向上集成的優(yōu)缺點(diǎn)?

      1、自頂向下集成 優(yōu)點(diǎn):較早地驗(yàn)證了主要控制和判斷點(diǎn);按深度優(yōu)先可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能;功能較早證實(shí),帶來(lái)信心;只需一個(gè)驅(qū)動(dòng),減少驅(qū)動(dòng)器開發(fā)的費(fèi)用;支持故障隔離。

      缺點(diǎn):柱的開發(fā)量大;底層驗(yàn)證被推遲;底層組件測(cè)試不充分。適應(yīng)于產(chǎn)品控制結(jié)構(gòu)比較清晰和穩(wěn)定;高層接口變化較??;底層接口未定義或經(jīng)常可能被修改;產(chǎn)口控制組件具有較大的技術(shù)風(fēng)險(xiǎn),需要盡早被驗(yàn)證;希望盡早能看到產(chǎn)品的系統(tǒng)功能行為。

      2、自底向上集成

      優(yōu)點(diǎn):對(duì)底層組件行為較早驗(yàn)證;工作最初可以并行集成,比自頂向下效率高;減少了樁的工作量;支持故障隔離。

      缺點(diǎn):驅(qū)動(dòng)的開發(fā)工作量大;對(duì)高層的驗(yàn)證被推遲,設(shè)計(jì)上的錯(cuò)誤不能被及時(shí)發(fā)現(xiàn)。

      適應(yīng)于底層接口比較穩(wěn)定;高層接口變化比較頻繁;底層組件較早被完成。

      二.簡(jiǎn)述螺旋模型的基本開發(fā)過(guò)程。正確答案

      (1)需求定義。利用需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步的用戶需求,制定項(xiàng)目開發(fā)計(jì)劃。

      (2)風(fēng)險(xiǎn)分析。根據(jù)初始需求或改進(jìn)意見(jiàn)評(píng)審可選用的方案,給出消除或減少風(fēng)險(xiǎn)的途徑。

      (3)工程實(shí)現(xiàn)。利用快速原型構(gòu)造方法針對(duì)已知的用戶需求生成快速原型。(4)評(píng)審。將原型提交用戶使用并征詢用戶改進(jìn)意見(jiàn)。

      上述過(guò)程將不斷迭代,直至給出用戶滿意的目標(biāo)軟件產(chǎn)品。

      三.一般而言,衡量某種程序語(yǔ)言是否適合于特定的項(xiàng)目,應(yīng)考慮哪些因素?(1)應(yīng)用領(lǐng)域;(2)算法和計(jì)算復(fù)雜性;(3)軟件運(yùn)行環(huán)境;(4)用戶需求中關(guān)于性能方面的需要;(5)數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性;(6)軟件開發(fā)人員的知識(shí)水平;(7)可用的編譯器與交叉編譯器。

      四.名詞解釋:

      軟件危機(jī)是指落后的軟件生產(chǎn)方式無(wú)法滿足迅速增長(zhǎng)的計(jì)算機(jī)軟件需求,從而導(dǎo)致軟件開發(fā)與維護(hù)過(guò)程中出現(xiàn)一系列嚴(yán)重問(wèn)題的現(xiàn)象

      軟件質(zhì)量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的開發(fā)標(biāo)準(zhǔn)、以及所有專業(yè)開發(fā)的軟件都應(yīng)具有的和隱含特征相一致的程度。

      恢復(fù)測(cè)試是指采取各種人工干預(yù)方式強(qiáng)制性地使軟件出錯(cuò),使其不能正常工作,6 進(jìn)而檢驗(yàn)系統(tǒng)的恢復(fù)能力。

      類圖(Class diagram)是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等

      數(shù)據(jù)耦合指兩個(gè)模塊之間有調(diào)用關(guān)系,傳遞的是簡(jiǎn)單的數(shù)據(jù)值,相當(dāng)于高級(jí)語(yǔ)言的值傳遞

      第二篇:軟件工程知識(shí)點(diǎn)總結(jié)

      軟件工程知識(shí)點(diǎn)總結(jié)

      軟件工程知識(shí)點(diǎn)總結(jié)

      1.軟件危機(jī):指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。

      2.軟件危機(jī)產(chǎn)生的原因:1.軟件本身的復(fù)雜性、難衡量的特點(diǎn);2.軟件開發(fā)與維護(hù)的方法不正確。

      3.軟件的定義:計(jì)算機(jī)程序、方法、規(guī)則、相關(guān)文檔資料以及在計(jì)算機(jī)上運(yùn)行程序時(shí)所必需的數(shù)據(jù)

      4.軟件不是程序,軟件是程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

      5.程序是能夠完成預(yù)定功能和性能的可執(zhí)行的指令序列;數(shù)據(jù)是使程序能夠適當(dāng)?shù)靥幚硇畔⒌臄?shù)據(jù)結(jié)構(gòu);文檔是開發(fā)、使用和維護(hù)程序所需要的圖文資料。

      6.軟件生命周期:一個(gè)軟件從定義、開發(fā)、使用和維護(hù),直到最終被廢棄所經(jīng)歷的一個(gè)漫長(zhǎng)時(shí)期。

      7.軟件開發(fā)的過(guò)程:

      ①問(wèn)題定義:確定要求解決的問(wèn)題是什么

      ②可行性研究:決定該問(wèn)題是否存在一個(gè)可行的解決辦法

      ③需求分析:深入了解用戶的要求,在要開發(fā)的目標(biāo)系統(tǒng)必須做什么問(wèn)題和用戶取得完全一致的看法。④概要設(shè)計(jì):概括回答怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)。概要設(shè)計(jì)又叫邏輯設(shè)計(jì)、總體設(shè)計(jì)、高層設(shè)計(jì)。

      ⑤詳細(xì)設(shè)計(jì):把解法具體化,設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。詳細(xì)設(shè)計(jì)也叫模塊設(shè)計(jì)、底層設(shè)計(jì)。⑥編碼和單元測(cè)試:編寫程序的工作量只占軟件開發(fā)全部工作量的10%-20%。

      ⑦綜合測(cè)試:軟件測(cè)試的工作量通常占軟件開發(fā)全部工作量的40%-50%。

      ⑧軟件維護(hù):軟件維護(hù)的費(fèi)用通常占軟件總費(fèi)用的55%-70%。

      ①②③為軟件定義時(shí)期,④⑤⑥⑦為軟件開發(fā)階段。④⑤為系統(tǒng)設(shè)計(jì),⑥⑦為系統(tǒng)實(shí)現(xiàn)。

      中國(guó)國(guó)家標(biāo)準(zhǔn)《計(jì)算機(jī)軟件開發(fā)規(guī)范》將軟件生命周期分為:可行性研究與計(jì)劃,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),實(shí)現(xiàn),組裝測(cè)試,確認(rèn)測(cè)試,使用和維護(hù)8個(gè)階段。

      8.軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。軟件工程采用工程的概念、原理、技術(shù)和方法來(lái)開發(fā)和維護(hù)軟件,結(jié)合正確的管理技術(shù)和先進(jìn)可靠的技術(shù)方法,經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件,并有效地維護(hù)它。

      9.軟件工程方法學(xué):方法、工具和過(guò)程。普遍使用的是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。

      10.瀑布模型:唯一被廣泛采用的模型,各階段間具有順序性和依賴性:前階段完成才能進(jìn)行下一階段。文檔驅(qū)動(dòng)。

      原型模型:快速建立一個(gè)能反映用戶主要需求的原型系統(tǒng)讓用戶試用,并根據(jù)用戶意見(jiàn)修改原型。原型的用途是獲知用戶真正需求,一旦需求確定,原型將被拋棄。當(dāng)用戶對(duì)系統(tǒng)的目標(biāo)不是很清楚,難以定義需求,可用此法。

      增量模型:也叫漸增模型。整個(gè)軟件被分解成許多各增量構(gòu)件,設(shè)計(jì)人員分批地逐步向用戶提交產(chǎn)品,每次用戶都得到一個(gè)滿足部分需求的可運(yùn)行產(chǎn)品。優(yōu)點(diǎn):能在短時(shí)間內(nèi)向用戶提交可完成部分工作的有用產(chǎn)品,易于維護(hù)。

      螺旋模型:使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn)。它類似于原型法,不過(guò)在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程。

      螺旋模型適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。螺旋模型的優(yōu)勢(shì)在于它是風(fēng)險(xiǎn)驅(qū)動(dòng)的。

      V型模型:從需求分析就開始編寫測(cè)試計(jì)劃一直到系統(tǒng)交付。需求分析對(duì)應(yīng)于驗(yàn)收測(cè)試,概要設(shè)計(jì)對(duì)應(yīng)于系統(tǒng)測(cè)試,詳細(xì)設(shè)計(jì)對(duì)應(yīng)于集成測(cè)試,編碼對(duì)應(yīng)于單元測(cè)試,這樣先產(chǎn)生計(jì)劃再執(zhí)行測(cè)試,在測(cè)試的每個(gè)階段都進(jìn)行審查.噴泉模型:是一種典型的適合于面向?qū)ο蠓缎偷倪^(guò)程模型,支持開發(fā)過(guò)程中的迭代。

      瀑布模型注重凍結(jié)需求的理念、Up模型注重增量迭代/用例驅(qū)動(dòng)、V型模型講究質(zhì)量保證理念、Xp模型講究溝通。

      11.實(shí)體-關(guān)系圖(E-R圖),用于建立數(shù)據(jù)模型,其中包含了實(shí)體、關(guān)系、屬性。

      12.數(shù)據(jù)流圖(DFD):描繪信息流和數(shù)據(jù)輸入輸出的移動(dòng)過(guò)程。是結(jié)構(gòu)化分析過(guò)程中使用的主要建模工具。功能建模。

      13.狀態(tài)轉(zhuǎn)換圖:通過(guò)描述系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,表示系統(tǒng)的行為,提供了行為建模的機(jī)制。

      3/29/2013 1

      軟件工程知識(shí)點(diǎn)總結(jié)

      14.數(shù)據(jù)字典:描述在數(shù)據(jù)模型、功能模型和行為模型中出現(xiàn)的數(shù)據(jù)對(duì)象和控制信息的特征,給出這些對(duì)象的精確定義。數(shù)據(jù)字典是分析模型的核心,通常使用CASE工具來(lái)創(chuàng)建和維護(hù)數(shù)據(jù)字典。

      15.結(jié)構(gòu)化設(shè)計(jì)的幾個(gè)階段:數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、過(guò)程設(shè)計(jì)(是詳細(xì)設(shè)計(jì)階段的主要任務(wù))。

      結(jié)構(gòu)設(shè)計(jì)屬于概要設(shè)計(jì)階段。接口設(shè)計(jì)(包括I/O設(shè)計(jì))和過(guò)程設(shè)計(jì)屬于詳細(xì)設(shè)計(jì)階段。人機(jī)界面設(shè)計(jì)屬接口設(shè)計(jì)。

      16.基本設(shè)計(jì)原理:模塊化、抽象、逐步求精、信息隱藏、模塊獨(dú)立(功能獨(dú)立,和其它模塊沒(méi)有過(guò)多相互作用)。

      模塊獨(dú)立的好處:易開發(fā)、易測(cè)試、易維護(hù)。模塊獨(dú)立程度的衡量標(biāo)準(zhǔn):內(nèi)聚和耦合。

      17.內(nèi)聚衡量模塊內(nèi)各元素之間結(jié)合的緊密程度。耦合衡量不同模塊之間連接的緊密程度。

      數(shù)據(jù)耦合→控制耦合→公共環(huán)境耦合→內(nèi)容耦合(高)

      (低內(nèi)聚)偶然內(nèi)聚→邏輯內(nèi)聚→時(shí)間內(nèi)聚→(中內(nèi)聚)過(guò)程內(nèi)聚→通信內(nèi)聚→(高內(nèi)聚)順序內(nèi)聚→功能內(nèi)聚

      模塊獨(dú)立性設(shè)計(jì)原則:提高內(nèi)聚,降低耦合18.表示軟件結(jié)構(gòu):層次圖、HIPO圖、結(jié)構(gòu)圖。過(guò)程設(shè)計(jì):程序流程圖、盒圖(N-S圖)、PAD圖、判定表、判定樹。

      19.軟件測(cè)試分:?jiǎn)卧獪y(cè)試和綜合測(cè)試。軟件項(xiàng)目管理從項(xiàng)目計(jì)劃開始,第一項(xiàng)計(jì)劃活動(dòng)是估算。

      白盒測(cè)試:也稱結(jié)構(gòu)測(cè)試,邏輯驅(qū)動(dòng)測(cè)試,基于代碼的測(cè)試,測(cè)試程序內(nèi)部的邏輯結(jié)構(gòu)和過(guò)程性細(xì)節(jié),前期使用。

      黑盒測(cè)試:即功能測(cè)試,在程序接口進(jìn)行測(cè)試,測(cè)試后期使用。具體辦法:等價(jià)劃分、邊界值分析、錯(cuò)誤推測(cè)。

      20.IEEE 1058.1給出軟件項(xiàng)目管理計(jì)劃的框架;ISO9000-3標(biāo)準(zhǔn)適用于軟件的開發(fā)、供應(yīng)、維護(hù);

      ISO/IEC12207是指導(dǎo)軟件過(guò)程實(shí)施的標(biāo)準(zhǔn);ISO/IEC TR 15504是軟件過(guò)程評(píng)估標(biāo)準(zhǔn)。軟件質(zhì)量保證-SQA。

      21.軟件重用是降低軟件整體成本、提高軟件質(zhì)量和開發(fā)生產(chǎn)率的合理有效途徑。

      可重用的軟件成分:軟件的技術(shù)表示(結(jié)構(gòu)模型、設(shè)計(jì)和代碼)、文檔、測(cè)試數(shù)據(jù)、與過(guò)程相關(guān)的任務(wù)(如審查)。

      22.軟件可移植性:指軟件從某一環(huán)境移植到另一環(huán)境下的難易程度。為方便移植,要盡量采用通用的程序設(shè)計(jì)語(yǔ)言。

      3/29/2013 2

      第三篇:軟件工程知識(shí)點(diǎn)總結(jié)

      軟件工程是把系統(tǒng)的、有序的、可量化的方法應(yīng)用到軟件的開發(fā)、運(yùn)營(yíng)和維護(hù)上的過(guò)程。是一門指導(dǎo)軟件系統(tǒng)開發(fā)的工程學(xué)科,它以計(jì)算機(jī)理論及其他學(xué)科為指導(dǎo),采用工程化的概念、原理、技術(shù)和方法進(jìn)行軟件的開發(fā)和維護(hù),把經(jīng)實(shí)踐證明的學(xué)科的管理措施與最先進(jìn)的技術(shù)方法結(jié)合起來(lái),目標(biāo)是以較少的投資獲取高質(zhì)量的軟件。內(nèi)容:方法與技術(shù)、工具與環(huán)境、管理技術(shù)、標(biāo)準(zhǔn)與規(guī)范。領(lǐng)域:軟件需求分析、軟件設(shè)計(jì)、軟件構(gòu)造、測(cè)試和維護(hù)。難題 1.復(fù)雜性 2.不可見(jiàn)性 3.易變性 4.服從性 5.非連續(xù)性

      計(jì)算機(jī)科學(xué)中與實(shí)踐相關(guān)的部分,都和數(shù)據(jù)以及其他學(xué)科發(fā)生關(guān)系。軟件工程和人的行為、現(xiàn)實(shí)社會(huì)的需求息息相關(guān)。

      發(fā)展史:1.生產(chǎn)作坊方式2.面向?qū)ο蟮姆椒?.軟件過(guò)程工程4.軟件復(fù)用和基于構(gòu)件的開發(fā) 學(xué)生做到:1.研發(fā)出符合客戶需求的軟件 2.通過(guò)一定的軟件流程,在預(yù)計(jì)的時(shí)間內(nèi)發(fā)布足夠好的軟件 3.通過(guò)數(shù)據(jù)和其他方式展現(xiàn)所開發(fā)的軟件是可以維護(hù)和繼續(xù)發(fā)展。

      單元測(cè)試(好標(biāo)準(zhǔn)):1.在最基本的功能/參數(shù)上驗(yàn)證程序正確性;2.由最熟悉代碼的人寫;3.測(cè)試后,機(jī)器狀態(tài)保持不變;4.要快;5.產(chǎn)生可重復(fù)、一致的結(jié)果;6.獨(dú)立性;7.覆蓋所有代碼路徑;8.集成到自動(dòng)測(cè)試的框架中;9.和產(chǎn)品代碼一起保存和維護(hù)。

      回歸測(cè)試:模塊出現(xiàn)退步,從正常退化到不正常狀態(tài),為了驗(yàn)證新改進(jìn)的代碼的正確性。個(gè)人開發(fā):計(jì)劃:估計(jì)時(shí)間(開發(fā)):.需求分析.生成設(shè)計(jì)文檔.設(shè)計(jì)復(fù)審.代碼規(guī)范.具體設(shè)計(jì).具體編碼.代碼復(fù)審.測(cè)試;記錄用時(shí);測(cè)試報(bào)告;計(jì)算工作量;事后總結(jié);提出改進(jìn)計(jì)劃 個(gè)人在團(tuán)隊(duì)中:1.通過(guò)交流實(shí)驗(yàn)等方法理解問(wèn)題、需求或任務(wù)2.提出多種解決辦法3.與相關(guān)角色交流解決問(wèn)題的提案,決定一個(gè)可行方案4.執(zhí)行5.和其他角色合作,測(cè)試實(shí)現(xiàn)方案,修復(fù)缺陷6.對(duì)結(jié)果負(fù)責(zé)

      代碼規(guī)范:代碼風(fēng)格規(guī)范:1.縮進(jìn)2.行寬3.括號(hào)4.斷行與空白行5.分行6.命名7.下劃線8.大小寫9.注釋

      代碼設(shè)計(jì)規(guī)范:1.函數(shù)2.goto3.錯(cuò)誤處理4.處理C++中的類 代碼復(fù)審目的:1.找出錯(cuò)誤代碼2.發(fā)現(xiàn)邏輯錯(cuò)誤3.發(fā)現(xiàn)算法錯(cuò)誤4.發(fā)現(xiàn)潛在錯(cuò)誤5.發(fā)現(xiàn)可能需要改進(jìn)的地方6.傳授經(jīng)驗(yàn)

      代碼復(fù)審步驟:1.代碼成功編譯2.程序員必須測(cè)試過(guò)代碼3.程序與提出新的代碼,差異分析4.可選擇面對(duì)面復(fù)審,獨(dú)立復(fù)審5.面對(duì)面復(fù)審中,開發(fā)者控制流程,講述修改的前因后果,復(fù)審者有權(quán)打斷敘述提出自己意見(jiàn)7.開發(fā)者負(fù)責(zé)所有問(wèn)題得到滿意解答8.達(dá)成一致意見(jiàn) 復(fù)審后:1.改正明顯的錯(cuò)誤2.對(duì)無(wú)法解決的錯(cuò)誤,記錄下來(lái)3.把所有錯(cuò)誤記在“我常犯的錯(cuò)誤”表中,作為以后自我復(fù)審的第一步

      結(jié)對(duì)編程好處:1.在開發(fā)層次,提供更好的設(shè)計(jì)質(zhì)量和代碼質(zhì)量,解決問(wèn)題能力強(qiáng)2.對(duì)開發(fā)人員,結(jié)對(duì)更有信心3.在企業(yè)管理層上,更有效的交流相互學(xué)習(xí)傳遞經(jīng)驗(yàn),高投入產(chǎn)出比 如何結(jié)對(duì)編程:1.駕駛員:寫設(shè)計(jì)文檔,進(jìn)行編碼和單元測(cè)試2.領(lǐng)航員:審閱文檔、編碼;考慮單元測(cè)試的覆蓋率;思考是否需要重構(gòu);幫解決技術(shù)問(wèn)題3.不斷輪換角色,不連續(xù)一小時(shí),領(lǐng)航員控制時(shí)間4.主動(dòng)參與5.只有水平差距,沒(méi)有級(jí)別差距6.設(shè)置好結(jié)對(duì)編程環(huán)境 團(tuán)隊(duì)模式:1.主治醫(yī)師2.明星3.社區(qū)4.業(yè)余劇團(tuán)5.秘密團(tuán)隊(duì)6.特工7.交響樂(lè)團(tuán)8.爵士樂(lè) 開發(fā)方法: 統(tǒng)一流程(RUP)業(yè)務(wù)建模.需求.分析和設(shè)計(jì).實(shí)現(xiàn).測(cè)試.部署.配置和變更管理.項(xiàng)目管理.環(huán)境.敏捷開發(fā)原則:1.盡早并持續(xù)交付有價(jià)值的軟件滿足需求2.歡迎需求的變化3.經(jīng)常發(fā)布可用軟件,間隔較短4.業(yè)務(wù)員與開發(fā)人員共同工作5.以有進(jìn)取心的人為核心6.面對(duì)面交流7.可用軟件是衡量項(xiàng)目進(jìn)展的主要指標(biāo)8.可持續(xù)發(fā)展9.不斷關(guān)注技術(shù)和設(shè)計(jì)10.保持簡(jiǎn)明 敏捷流程:1.找出完成產(chǎn)品所需要做的事2.決定當(dāng)前沖刺需要解決的事3.沖刺 軟件需求:1.獲取和引導(dǎo)需求2.分析和定義需求3.驗(yàn)證需求4.在軟件產(chǎn)品的生命周期中管理需求(功能性需求.開發(fā)過(guò)程需求.非功能性需求.綜合需求)需求獲取方法:用戶調(diào)查1.焦點(diǎn)小組2.深入面談3.卡片分類4.調(diào)查問(wèn)卷5.用戶日志研究6.人類學(xué)調(diào)查7.眼動(dòng)跟蹤研究8.快速原型調(diào)研9.a/b測(cè)試

      利益相關(guān)者:用戶:直接使用軟件的人;客戶:購(gòu)買軟件的人;市場(chǎng)分析師:代表典型用戶的需求;監(jiān)管機(jī)構(gòu):符合行業(yè)和政策規(guī)定;軟件工程師:需求階段重要角色

      項(xiàng)目經(jīng)理PM:對(duì)項(xiàng)目流程負(fù)責(zé),正確的協(xié)調(diào)團(tuán)隊(duì)內(nèi)部外部,調(diào)配各部門資源和時(shí)間,有效進(jìn)行風(fēng)險(xiǎn)管理,保證一個(gè)項(xiàng)目按計(jì)劃結(jié)項(xiàng)。管事也管人,不一定做具體工作。應(yīng)對(duì)風(fēng)險(xiǎn):1.進(jìn)一步研究2.接受3.規(guī)避4.轉(zhuǎn)移5.降低6.制定應(yīng)急計(jì)劃

      PM能力:1.觀察、理解和快速學(xué)習(xí)2.分析管理能力3.專業(yè)能力4.自省能力

      典型用戶:名字.年齡.收入.代表的用戶在市場(chǎng)上的比例和重要性.典型場(chǎng)景.環(huán)境.生活情況.知識(shí)層次/能力.偏好

      功能說(shuō)明書 1.定義好相關(guān)概念2.規(guī)范好一些假設(shè)3.避免誤解,界定邊界條件4.描述主流用戶5.一些好的功能會(huì)有副作用6.服務(wù)質(zhì)量說(shuō)明 功能驅(qū)動(dòng)設(shè)計(jì):1.構(gòu)造總體模型2.構(gòu)造功能列表3.制定開發(fā)計(jì)劃4.功能設(shè)計(jì)階段5.實(shí)現(xiàn)具體功能

      用戶體驗(yàn):1.用戶第一印象2.從用戶角度考慮問(wèn)題3.軟件服務(wù)始終要記住用戶的選擇4.短期刺激和長(zhǎng)期影響5.不讓用戶犯簡(jiǎn)單錯(cuò)誤6.用戶體驗(yàn)和質(zhì)量7.情感設(shè)計(jì) 評(píng)價(jià)標(biāo)準(zhǔn):1.盡快提供可感觸的反饋2.系統(tǒng)界面符合用戶的現(xiàn)實(shí)慣例3.用戶有控制權(quán)4.一致性和標(biāo)準(zhǔn)化5.適合各種類型的用戶6.幫助用戶識(shí)別、診斷并修復(fù)錯(cuò)誤7.有提示和幫助文檔 測(cè)試方法:1.單元測(cè)試2.代碼覆蓋率測(cè)試3.構(gòu)建驗(yàn)證測(cè)試4.驗(yàn)收測(cè)試5.探索式測(cè)試6.回歸測(cè)試7.場(chǎng)景/集成/系統(tǒng)測(cè)試8.伙伴測(cè)試9.效能測(cè)試10.壓力測(cè)試11.內(nèi)/外部公開測(cè)試

      黑箱:把軟件系統(tǒng)當(dāng)作一個(gè)黑箱,無(wú)法了解或使用系統(tǒng)的內(nèi)部結(jié)構(gòu)及知識(shí)。從軟件的行為而不是從內(nèi)部結(jié)構(gòu)出發(fā)來(lái)設(shè)計(jì)測(cè)試。白箱:設(shè)計(jì)者可以看到軟件系統(tǒng)的內(nèi)部結(jié)構(gòu),并使用軟件的內(nèi)部結(jié)構(gòu)和知識(shí)來(lái)選擇測(cè)試數(shù)據(jù)及具體的測(cè)試方法。

      軟件質(zhì)量:1.程序的質(zhì)量2.軟件工程的質(zhì)量(開發(fā)過(guò)程可見(jiàn)性、風(fēng)險(xiǎn)控制、軟件內(nèi)部模塊、開發(fā)成本控制、內(nèi)部質(zhì)量指標(biāo)完成情況)

      如何衡量:CMMI理論:一級(jí)初始級(jí)(企業(yè)項(xiàng)目目標(biāo)實(shí)現(xiàn)),二級(jí)管理級(jí)(對(duì)項(xiàng)目流程審查,保證成功),三明確級(jí)(對(duì)管理體系制度化保障完成),四量化管理級(jí)(數(shù)字化管理,流程的穩(wěn)定性),五級(jí)優(yōu)化級(jí)(充分利用信息資料,主動(dòng)改善流程)

      如何衡量:1.軟件CC后DCR的數(shù)量2.用戶的好評(píng)3.在CC后發(fā)現(xiàn)bug的數(shù)量4.文檔完整性和準(zhǔn)確性5.修復(fù)bug平均時(shí)間6.單位開發(fā)量出現(xiàn)最大bug數(shù)量7.測(cè)試用例的覆蓋率8.模塊的復(fù)雜程度9.代碼的行數(shù)10.文檔的數(shù)量和復(fù)雜程度11.有多少代碼重復(fù)12.平均每天構(gòu)建失敗的次數(shù)13.實(shí)現(xiàn)了多少功能點(diǎn)14.軟件能運(yùn)行多久,平均初次錯(cuò)誤時(shí)間,無(wú)故障時(shí)間 會(huì)診:1.開發(fā)者提交參加會(huì)診的bug和修改方案2.會(huì)議決定是否同意修改方案3.執(zhí)行

      IT創(chuàng)新:1.靈光一閃,創(chuàng)新及隨其后2.大家都喜歡創(chuàng)新3.好的想法會(huì)贏4.創(chuàng)新者都是一馬當(dāng)先5.要成為領(lǐng)域的專家6.技術(shù)是創(chuàng)新的關(guān)鍵7.成功的團(tuán)隊(duì)更能創(chuàng)新

      團(tuán)隊(duì)合作階段:1.萌芽階段2.磨合階段3.規(guī)范階段4.創(chuàng)造階段5.團(tuán)隊(duì)的效能曲線和假團(tuán)隊(duì) 職業(yè)道德:1.行為與公眾利益一致2.以客戶和雇主利益最大化的方式做事3.確保自己的產(chǎn)品以及修改滿足專業(yè)標(biāo)準(zhǔn)4.具備完整獨(dú)立的專業(yè)判斷5.軟件項(xiàng)目的經(jīng)理和領(lǐng)導(dǎo)人應(yīng)提倡并親自采用復(fù)合道德規(guī)范的方法來(lái)管理軟件的開發(fā)和維護(hù)6.保證職業(yè)的誠(chéng)信和榮譽(yù)7.公平對(duì)待同儕,并予以支持和幫助。

      需求分析:四方面:對(duì)問(wèn)題的識(shí)別、分析與綜合、制定規(guī)格說(shuō)明書、評(píng)審;三原則:必須能夠表達(dá)和理解問(wèn)題的數(shù)據(jù)域和功能域;必須按自頂向下、逐步分解的方式對(duì)問(wèn)題進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。

      第四篇:軟件工程知識(shí)點(diǎn)總結(jié)

      第二章軟件生命周期和過(guò)程模型

      2.1軟件生命周期是什么?分為哪幾個(gè)階段?每個(gè)階段干什么?

      2.2.1瀑布模型

      1、軟件生命周期是指軟件產(chǎn)品從考慮其概念開始到交付使用,直至最終退役為止的整個(gè)過(guò)程。軟件生命周期可以劃分為軟件定義、軟件開發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期。

      2、軟件生命周期各個(gè)階段的任務(wù):

      時(shí)期階段任務(wù)

      軟件定義確定待開發(fā)的軟件系統(tǒng)要做什么

      問(wèn)題定義確定解決什么問(wèn)題

      可行性研究確定“上一個(gè)階段所確定的問(wèn)題是否有行得通的解決方法”需求分析確定“目標(biāo)系統(tǒng)必須做什么”這個(gè)問(wèn)題

      軟件開發(fā)具體設(shè)計(jì)和實(shí)現(xiàn)軟件

      概要設(shè)計(jì)確定“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)”

      詳細(xì)設(shè)計(jì)在概要設(shè)計(jì)階段只是以一種比較抽象概括的方式給出解

      決問(wèn)題的辦法。在詳細(xì)設(shè)計(jì)階段,需要將解法具體化,確

      定“應(yīng)該怎樣具體實(shí)現(xiàn)這個(gè)系統(tǒng)”

      編碼和單元測(cè)試 在前面階段的基礎(chǔ)上,寫出正確的、易理解、易維護(hù)的程

      序。

      綜合測(cè)試通過(guò)各種類型的測(cè)試及調(diào)試,發(fā)現(xiàn)功能、邏輯和實(shí)現(xiàn)上可

      能存在的缺陷,使軟件達(dá)到預(yù)定的要求。(其中最基本的測(cè)試是集成測(cè)試和驗(yàn)收測(cè)試)

      運(yùn)行和維護(hù)根據(jù)軟件運(yùn)行中的問(wèn)題,對(duì)其進(jìn)行各種修改,使系統(tǒng)能持

      久地滿足用戶的需要。

      3、瀑布模型

      瀑布模型包含了各項(xiàng)軟件工程活動(dòng),即(概念階段)制訂開發(fā)計(jì)劃、進(jìn)行需求分析、(開發(fā)階段)軟件設(shè)計(jì)、程序編碼、測(cè)試、(維護(hù)階段)運(yùn)行維護(hù)。通常情況下,運(yùn) 行維護(hù)活動(dòng)是一個(gè)具有最長(zhǎng)生命周期的階段。

      4.原型模型

      原型一般是指對(duì)某種產(chǎn)品進(jìn)行模擬的初始版本或原始模型。在使用原型時(shí),可以采取兩種不同的策略:廢棄策略、追加策略。

      5、螺旋模型

      基本思想:使用原型及其他方法來(lái)降低風(fēng)險(xiǎn)。包含4種活動(dòng):制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程、客戶評(píng)價(jià)。

      6、噴泉模型(迭代模型)

      噴泉模型認(rèn)為軟件開發(fā)具有的兩個(gè)固有屬性:迭代性、無(wú)間隙性。他認(rèn)為軟件開發(fā)過(guò)程的各個(gè)階段是相互重疊,多次反復(fù)的,就像噴泉一樣,水噴上去又可以落下來(lái),既可以落在中間,又可以落到底部。

      7、增量模型(漸增模型)

      主要面向市場(chǎng)開發(fā)

      第三章 可行性研究

      1、可行性研究考慮哪幾方面的研究?(4)

      a)技術(shù)可行性;b)經(jīng)濟(jì)可行性;c)操作可行性;d)社會(huì)可行性

      第四章 需求工程

      1、需求工程經(jīng)過(guò)哪4步?P63小結(jié)

      需求開發(fā)過(guò)程可以按照需求獲取、分析建模、編寫規(guī)格說(shuō)明書、需求評(píng)審。

      2、需求分析階段要完成的任務(wù)就是最終形成一份經(jīng)開發(fā)方和用戶認(rèn)可或達(dá)成共識(shí)的軟件需求規(guī)格說(shuō)明書。

      第五章 結(jié)構(gòu)化方法

      數(shù)據(jù)流圖 結(jié)構(gòu)圖

      第六章 面向?qū)ο蠡A(chǔ)

      1、類和對(duì)象的區(qū)別面向?qū)ο蠛兔嫦蜻^(guò)程區(qū)別

      第七章 面向?qū)ο蠓治?/p>

      時(shí)序圖 用例模型

      第八章 軟件設(shè)計(jì)基礎(chǔ)

      第九章 結(jié)構(gòu)化設(shè)計(jì)方法

      第十章 面向?qū)ο蟮脑O(shè)計(jì)

      1、面向?qū)ο蟮脑O(shè)計(jì),各設(shè)計(jì)原則是什么?及各原則是干什么的?

      a)單一職責(zé)原則(SRP):?jiǎn)我宦氊?zé)就是要求系統(tǒng)中一個(gè)具體設(shè)計(jì)元素(類)只完成某一

      類功能(職責(zé)),盡可能避免出現(xiàn)一個(gè)“復(fù)合”功能的類----在同

      一個(gè)類中完成多個(gè)不同的功能。關(guān)鍵詞:提高內(nèi)聚性

      b)開放—封閉原則(OCP):基本思想是:“不用修改原有類就能擴(kuò)展一個(gè)類的行為”。

      關(guān)鍵詞: 抽象封裝多態(tài)

      c)Liskov替換原則(LSP):子類應(yīng)當(dāng)可以替換父類并出現(xiàn)在父類能夠出現(xiàn)的任何地方。d)接口隔離原則(ISP):采用多個(gè)與特定客戶類有關(guān)的接口比采用一個(gè)通用的涵蓋多個(gè)業(yè)務(wù)方法的接口更好。

      e)依賴倒置原則(DIP):是指應(yīng)用系統(tǒng)中的高層模塊不應(yīng)依賴于底層模塊,兩者都應(yīng)該依賴于抽象:抽象不應(yīng)依賴于細(xì)節(jié)實(shí)現(xiàn),實(shí)現(xiàn)細(xì)節(jié)應(yīng)該依賴與抽象。

      第十一章 用戶界面設(shè)計(jì)

      1、用戶界面設(shè)計(jì)原則:

      a)置用戶于控制之下;b)減少用戶的記憶負(fù)擔(dān);c)保持界面一致

      第十二章 軟件實(shí)現(xiàn)

      12.3軟件編碼規(guī)范(要求:會(huì)修改代碼)

      注釋一般遵守以下原則:1)注釋的縮進(jìn)要與相應(yīng)代碼一致;2)每行注釋用至少一個(gè)空行分開;3)對(duì)于所有的常量、變量、數(shù)據(jù)結(jié)構(gòu)聲明,在聲明時(shí)都必須加以注釋,說(shuō)明其含義。

      4)頭文件、源文件的頭部都應(yīng)進(jìn)行注釋。

      命名規(guī)范:類名,類型名,方法名大小寫混用,首字母大寫,分個(gè)字母大寫枚舉類型,常量名,宏名全部大寫

      指針變量p

      全局變量g

      靜態(tài)變量s

      第十三章軟件測(cè)試

      1、黑盒測(cè)試:又稱為功能性測(cè)試或行為測(cè)試,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程。

      2、白盒測(cè)試:又稱透明測(cè)試,已知產(chǎn)品內(nèi)部工作過(guò)程,通過(guò)測(cè)試檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按

      照產(chǎn)品規(guī)格說(shuō)明的規(guī)定正常進(jìn)行。

      3、動(dòng)態(tài)測(cè)試:指通常意義上的測(cè)試,即使用和運(yùn)行軟件。

      4、靜態(tài)測(cè)試:指測(cè)試不運(yùn)行的部分,只是靜態(tài)檢查和審核。

      5、靜態(tài)黑盒測(cè)試:測(cè)試產(chǎn)品說(shuō)明書屬于靜態(tài)黑盒測(cè)試。(產(chǎn)品說(shuō)明書是書面文檔,而不是

      可執(zhí)行程序,因此是靜態(tài)的??衫脮嫖臋n進(jìn)行黑盒測(cè)試認(rèn)真查找其中的缺陷)。

      6、動(dòng)態(tài)黑盒測(cè)試:不深入代碼細(xì)節(jié)測(cè)試軟件的方法。(它是動(dòng)態(tài)的,因?yàn)槌绦蛟谶\(yùn)行,同

      時(shí)它是黑盒的。)

      7、靜態(tài)白盒測(cè)試:是在不執(zhí)行軟件的條件下有條理地仔細(xì)檢查軟件設(shè)計(jì)、體系結(jié)構(gòu)和代碼,從而找出軟件缺陷的過(guò)程,有時(shí)稱為結(jié)構(gòu)化分析。(這是在程序員編碼完成后立馬完成的,由程序員做的)。

      8、動(dòng)態(tài)白盒測(cè)試:是指利用查看代碼功能和實(shí)現(xiàn)方法得到的信息,來(lái)確定哪些需要測(cè)試、哪些不需要測(cè)試、如何展開測(cè)試。它也稱為結(jié)構(gòu)化檢測(cè)。(有軟件測(cè)試員設(shè)計(jì)和執(zhí)行)。

      9、軟件測(cè)試的一般過(guò)程?各過(guò)程測(cè)試哪個(gè)方面?

      單元測(cè)試:(白盒測(cè)試,一般有程序員實(shí)施)

      也稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單元程序模塊進(jìn)行測(cè)試的工作。目的是發(fā)現(xiàn)模塊內(nèi)部的軟件缺陷,修改這些缺陷使其代碼能夠正確運(yùn)行。

      集成測(cè)試:(只能是黑盒測(cè)試)

      也稱組裝測(cè)試,它的任務(wù)是按照一定的策略對(duì)單元測(cè)試的模塊進(jìn)行組裝,并在組裝過(guò)程中進(jìn)行模塊接口與系統(tǒng)功功能測(cè)試。

      確認(rèn)測(cè)試:(Alpha測(cè)試和Beta測(cè)試)

      也稱有效性測(cè)試,目的是驗(yàn)證軟件的有效性,即驗(yàn)證軟件的功能和性能及其他

      特性是否符合用戶要求。

      系統(tǒng)測(cè)試:主要任務(wù):測(cè)試軟件系統(tǒng)是否能與硬件協(xié)調(diào)工作,測(cè)試與其他軟件協(xié)調(diào)運(yùn)行的情況。

      第十四章 軟件維護(hù)

      1、軟件維護(hù)的一般類型?(4類,最重要的是:完善性維護(hù))

      軟件維護(hù)的分類:糾錯(cuò)性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)

      第十五章軟件項(xiàng)目管理

      1、軟件配置管理和基線的概念。

      軟件過(guò)程的輸出信息可以分為3個(gè)主要類別:計(jì)算機(jī)程序,描述計(jì)算機(jī)程序的文檔,數(shù)據(jù)。這些項(xiàng)包含了所有在軟件過(guò)程中產(chǎn)生的信息,總稱為軟件配置。

      基線:是一個(gè)軟件配置管理的概念,幫助我們?cè)诓粐?yán)重阻礙合理變化的情況下來(lái)控制變化。定義:已經(jīng)通過(guò)正式復(fù)審和批準(zhǔn)的某規(guī)約或產(chǎn)品,它因此可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只能通過(guò)正式的變化控制過(guò)程的改變。

      軟件配置管理(SCM):是一套管理軟件開發(fā)和軟件維護(hù)以及各種中間軟件產(chǎn)品的方法和規(guī)則。可被視為應(yīng)用于整個(gè)軟件過(guò)程的軟件質(zhì)量保證活動(dòng)。

      第五篇:軟件工程知識(shí)點(diǎn)總結(jié)

      7.1軟件的定義及特點(diǎn)

      軟件(Software)是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序(Program),數(shù)據(jù)(Data)及其相關(guān)文檔(Document)的完整集合。

      三個(gè)特點(diǎn):

      (1)軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,因而它具有抽象性;(2)軟件的生產(chǎn)與硬件不同,在它的開發(fā)過(guò)程中沒(méi)有明顯的制造過(guò)程;(3)在軟件的運(yùn)行和使用期間,沒(méi)有硬件那樣的機(jī)械磨損,老化問(wèn)題。

      7.2軟件危機(jī)及其表現(xiàn)

      軟件危機(jī)(softward crisis)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)中所遇到的一系列嚴(yán)重問(wèn)題。這些問(wèn)題絕不僅僅是“不能正常運(yùn)行的”軟件才具有,實(shí)際上幾乎所有軟件都不同程度地存在這些問(wèn)題。

      具體地說(shuō),軟件危機(jī)主要有下述一些表現(xiàn)。

      (1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。

      (2)用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。

      (3)軟件產(chǎn)品的質(zhì)量往往靠不住。

      (4)軟件常常是不可維護(hù)的。

      (5)軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料。

      (6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。

      7.3軟件工程及三要素

      軟件工程:軟件工程是采用工程的概念、原理、技術(shù)和方法來(lái)指導(dǎo)軟件開發(fā)和維護(hù)的工程學(xué)科,以工程化的原理和方法來(lái)解決軟件問(wèn)題。

      軟件工程的特性:

      (1)軟件工程關(guān)注于大型程序的構(gòu)造(2)軟件工程的中心課題是控制復(fù)雜性(3)軟件經(jīng)常變化

      (4)開發(fā)軟件的效率非常重要(5)和諧地合作是開發(fā)軟件的關(guān)鍵(6)軟件必須有效地支持它的用戶

      (7)在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人

      軟件工程方法學(xué)包含3個(gè)要素:方法、工具和過(guò)程。

      7.4軟件生命周期

      軟件生命周期又稱為軟件生存周期或系統(tǒng)開發(fā)生命周期,是軟件的產(chǎn)生直到報(bào)廢的生命周期,周期內(nèi)有問(wèn)題定義、可行性分析、總體描述、系統(tǒng)設(shè)計(jì)、編碼、調(diào)試和 測(cè)試、驗(yàn)收與運(yùn)行、維護(hù)升級(jí)到廢棄等階段,這種按時(shí)間分程的思想方法是軟件工程中的一種思想原則,即按部就班、逐步推進(jìn),每個(gè)階段都要有定義、工作、審 查、形成文檔以供交流或備查,以提高軟件的質(zhì)量。

      每個(gè)階段的任務(wù)如下

      問(wèn)題定義階段:該階段的關(guān)鍵任務(wù)是要明確:要解決的問(wèn)題是什么? 可性行研究階段:該階段的關(guān)鍵任務(wù)是要明確:做不做? 需求分析階段:該階段的關(guān)鍵任務(wù)是要明確:做什么?

      概要設(shè)計(jì)(總體設(shè)計(jì))階段:該階段的關(guān)鍵任務(wù)是要明確:怎么做? 詳細(xì)設(shè)計(jì)階段:該階段的關(guān)鍵任務(wù)是要明確:具體做法。

      編碼和單元測(cè)試階段:該階段的關(guān)鍵任務(wù)是:編碼和單元測(cè)試。

      綜合測(cè)試階段:該階段的關(guān)鍵任務(wù)是通過(guò)各種類型的測(cè)試(及調(diào)試)使軟件達(dá)到預(yù)定的要求。軟件維護(hù)階段:該階段的關(guān)鍵任務(wù)是通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的要求。

      7.4.1瀑布模型

      瀑布模型有以下優(yōu)點(diǎn)

      1)為項(xiàng)目提供了按階段劃分的檢查點(diǎn)。

      2)當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段。3)可在迭代模型中應(yīng)用瀑布模型。

      4)它提供了一個(gè)模板,這個(gè)模板使得分析、設(shè)計(jì)、編碼、測(cè)試和支持的方法可以在該模板下有一個(gè)共同的指導(dǎo)。

      瀑布模型適合于用戶需求明確、完整、無(wú)重大變化的軟件項(xiàng)目開發(fā)。瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動(dòng)的模型。

      瀑布模型有以下缺點(diǎn)

      1)各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。

      2)由于開發(fā)模型是線性的,用戶只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開發(fā)成果,從而增加了開發(fā)風(fēng)險(xiǎn)。

      3)通過(guò)過(guò)多的強(qiáng)制完成日期和里程碑來(lái)跟蹤各個(gè)項(xiàng)目階段。4)瀑布模型的突出缺點(diǎn)是不適應(yīng)用戶需求的變化。

      “瀑布模型是由文檔驅(qū)動(dòng)的”這個(gè)事實(shí)也是它的一個(gè)主要缺點(diǎn)。實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行,用戶常常難以清楚地給出所有需求,用戶必須有耐心,等到系統(tǒng)開發(fā)完成。

      7.4.2 原型模型—快速原型模型

      在用戶不能給出完整、準(zhǔn)確的需求說(shuō)明,或者開發(fā)者不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等許多情況下,可以根據(jù)用戶的一組基本需求,快速建造一個(gè)原型(可運(yùn)行的軟件),然后進(jìn)行評(píng)估,進(jìn)一步精化、調(diào)整原型,使其滿足用戶的要求,也使開發(fā)者對(duì)將要做的事情有更好的理解。優(yōu)點(diǎn):

      (1)開發(fā)人員和用戶在“原型”上達(dá)成一致。這樣一來(lái),可以減少設(shè)計(jì)中的錯(cuò)誤和開發(fā)中的風(fēng)險(xiǎn),也減少了對(duì)用戶培訓(xùn)的時(shí)間,而提高了系統(tǒng)的實(shí)用、正確性以及用戶的滿意程度。(2)縮短了開發(fā)周期,加快了工程進(jìn)度。(3)降低成本。

      盡早發(fā)現(xiàn)需求,揭示風(fēng)險(xiǎn) 缺點(diǎn):

      ⑴為了使原型盡快的工作,沒(méi)有考慮軟件的總體質(zhì)量和長(zhǎng)期的可維護(hù)性。

      ⑵為了演示,可能采用不合適的操作系統(tǒng)、編程語(yǔ)言、效率低的算法,這些不理想的選擇成了系統(tǒng)的組成部分。

      ⑶開發(fā)過(guò)程不便于管理。

      7.4.3螺旋模型

      螺旋模型的優(yōu)點(diǎn):(1)對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo)

      (2)減少了過(guò)多測(cè)試或測(cè)試不足(3)維護(hù)和開發(fā)之間并沒(méi)有本質(zhì)區(qū)別 螺旋模型的缺點(diǎn):

      (1)風(fēng)險(xiǎn)驅(qū)動(dòng),需要相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),否則風(fēng)險(xiǎn)更大

      (2)主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目,隨著過(guò)程的進(jìn)展演化,開發(fā)者和用戶能夠更好的識(shí)別和對(duì)待每一個(gè)演化級(jí)別上的風(fēng)險(xiǎn)

      (3)隨著迭代次數(shù)的增加,工作量加大,軟件開發(fā)成本增加

      7.4.4增量模型

      增量模型優(yōu)點(diǎn):

      (1)在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品,并分批、逐步地向用戶提交產(chǎn)品。從第一個(gè)構(gòu)件交付之日起,用戶就能做一些有用的工作。

      (2)整個(gè)軟件產(chǎn)品被分解成許多個(gè)增量構(gòu)件,開發(fā)人員可以一個(gè)構(gòu)件一個(gè)構(gòu)件地逐步開發(fā)。(3)逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給客戶組織帶來(lái)的沖擊。(4)采用增量模型比采用瀑布模型和快速原型模型需要更精心的設(shè)計(jì),但在設(shè)計(jì)階段多付出的勞動(dòng)將在維護(hù)階段獲得回報(bào)。增量模型的缺點(diǎn):

      (1)在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來(lái)已經(jīng)開發(fā)出的產(chǎn)品。此外,必須把軟件的體系結(jié)構(gòu)設(shè)計(jì)得便于按這種方式進(jìn)行擴(kuò)充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過(guò)程必須簡(jiǎn)單、方便,也就是說(shuō),軟件體系結(jié)構(gòu)必須是開放的。

      (2)開發(fā)人員既要把軟件系統(tǒng)看作整體。又要看成可獨(dú)立的構(gòu)件,相互矛盾。(3)多個(gè)構(gòu)件并行開發(fā),具有無(wú)法集成的風(fēng)險(xiǎn)。

      7.4.5噴泉模型

      主要用于支持面向?qū)ο箝_發(fā)過(guò)程體現(xiàn)了軟件創(chuàng)建所固有的迭代和無(wú)間隙的特征。噴泉模型的優(yōu)點(diǎn)

      噴泉模型不像瀑布模型那樣,需要分析活動(dòng)結(jié)束后才開始設(shè)計(jì)活動(dòng),設(shè)計(jì)活動(dòng)結(jié)束后才開始編碼活動(dòng)。該模型的各個(gè)階段沒(méi)有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)。其優(yōu)點(diǎn)是可以提高軟件項(xiàng)目開發(fā)效率,節(jié)省開發(fā)時(shí)間,適應(yīng)于面向?qū)ο蟮能浖_發(fā)過(guò)程。

      噴泉模型的缺點(diǎn)

      由于噴泉模型在各個(gè)開發(fā)階段是重疊的,因此在開發(fā)過(guò)程中需要大量的開發(fā)人員,因此不利于項(xiàng)目的管理。此外這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況。

      其特點(diǎn)如下:

      (1)開發(fā)過(guò)程有分析、系統(tǒng)設(shè)計(jì)、軟件設(shè)計(jì)和實(shí)現(xiàn)4個(gè)階段。(2)各階段相互重疊,它反映了軟件過(guò)程并行性的特點(diǎn)。(3)以分析為基礎(chǔ),資源消耗成塔型。

      (4)反映了軟件過(guò)程迭代性的自然特性,從高層返回低層無(wú)資源消耗。(5)強(qiáng)調(diào)增量開發(fā),整個(gè)過(guò)程是一個(gè)迭代的逐步提煉的過(guò)程。

      7.4.6構(gòu)件組裝模型

      構(gòu)件組裝模型導(dǎo)致軟件復(fù)用,而可復(fù)用性給軟件工程師提供了大量的可見(jiàn)的益處。軟件開發(fā)不

      用一切從零開始,開發(fā)過(guò)程就是一個(gè)組裝構(gòu)件的過(guò)程,維護(hù)的過(guò)程就是對(duì)構(gòu)件升級(jí)、替換和擴(kuò)充的過(guò)程,大大提高了軟件的開發(fā)效率。構(gòu)件模型允許多個(gè)項(xiàng)目同時(shí)開發(fā),降低了費(fèi)用,提高了可維護(hù)性。

      構(gòu)件模型也存在一些缺點(diǎn),如:由于存在多種構(gòu)件標(biāo)準(zhǔn),缺乏通用的構(gòu)件組裝結(jié)構(gòu)標(biāo)準(zhǔn),如果自行定義會(huì)引入較大的風(fēng)險(xiǎn);構(gòu)件可重用性和軟件系統(tǒng)高效性之間不易協(xié)調(diào);如果過(guò)分依賴構(gòu)件,構(gòu)件質(zhì)量會(huì)影響最終的產(chǎn)品質(zhì)量。

      7.4.7 RUP RUP是由Rational公司的Booch、Jacobson、Rumbaugh提出的軟件過(guò)程模型,也稱RUP(Rational Unified Process)。RUP重復(fù)一系列周期,每個(gè)周期由一個(gè)交付給用戶的產(chǎn)品結(jié)束。

      每個(gè)周期劃分為初始、細(xì)化、構(gòu)造和移交四個(gè)階段,每個(gè)階段圍繞著五個(gè)核心工作流(需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試)分別迭代。模型見(jiàn)下圖:

      1.4個(gè)階段

      初始階段:進(jìn)行問(wèn)題定義,確定目標(biāo),評(píng)估其可行性,降低關(guān)鍵風(fēng)險(xiǎn)。細(xì)化階段:制定項(xiàng)目計(jì)劃、配置各類資源、建立系統(tǒng)架構(gòu)(包括各類視圖)。構(gòu)造階段:開發(fā)整個(gè)產(chǎn)品,并確保產(chǎn)品可移交給用戶。移交階段:產(chǎn)品發(fā)布、安裝、用戶培訓(xùn)。

      在每個(gè)階段的每次迭代的最后,用例模型、分析模型、設(shè)計(jì)模型、實(shí)現(xiàn)模型都會(huì)增量,每個(gè)階段結(jié)束的里程碑處,管理層做出是否繼續(xù)、進(jìn)度、預(yù)算、是否給下一階段提供資助等決定。

      不同階段工作流的側(cè)重點(diǎn)不同,前兩階段大部分工作集中在需求、分析和架構(gòu)設(shè)計(jì)上;在構(gòu)造階段,重點(diǎn)轉(zhuǎn)移到詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試上。

      2.9個(gè)工作流

      RUP中有9個(gè)核心工作流,分為6個(gè)核心過(guò)程工作流(Core Process Workflows)和3個(gè)核心支持工作流(Core Supporting Workflows)。

      商業(yè)建模:深入了解使用目標(biāo)系統(tǒng)的機(jī)構(gòu)及其商業(yè)運(yùn)作,評(píng)估目標(biāo)系統(tǒng)對(duì)使用它的機(jī)構(gòu)的影響。需求:捕獲客戶的需求,并且使開發(fā)人員和用戶達(dá)成對(duì)需求描述的共識(shí)。分析和設(shè)計(jì):把需求分析的結(jié)果轉(zhuǎn)化成分析模型與設(shè)計(jì)模型。實(shí)現(xiàn):把設(shè)計(jì)模型轉(zhuǎn)換成實(shí)現(xiàn)成果。

      測(cè)試:檢查個(gè)子系統(tǒng)的交互與集成,驗(yàn)證所有需求是否都被正確地實(shí)現(xiàn)了,識(shí)別,確認(rèn)缺陷并確保在軟件部署之前消除缺陷。

      部署:成功地生成目標(biāo)系統(tǒng)的可運(yùn)行版本,并把軟件移交給最終用戶。

      配置和變更管理:跟蹤并維護(hù)在軟件開發(fā)過(guò)程中產(chǎn)生的所有制品的完整性和一致性。

      軟件項(xiàng)目管理:提供項(xiàng)目管理框架,為軟件開發(fā)項(xiàng)目制定計(jì)劃,人員配備,執(zhí)行和監(jiān)控等方面的實(shí)用準(zhǔn)則,并為風(fēng)險(xiǎn)管理提供框架。

      環(huán)境:向軟件開發(fā)機(jī)構(gòu)提供軟件開發(fā)環(huán)境,包括過(guò)程管理和工具支持。

      7.5 UML UML適用于各種軟件開發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具。UML由以下5類圖來(lái)定義: 第1類:用例圖

      第2類:靜態(tài)圖(包括類圖、對(duì)象圖和包圖)第3類:行為圖(包括狀態(tài)圖和活動(dòng)圖)第4類:交互圖(包括時(shí)序圖和協(xié)作圖)第5類:實(shí)現(xiàn)圖(包括組件圖和配置圖)

      第一類是用例圖:從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。

      第二類是靜態(tài)圖:包括類圖,對(duì)象圖,包圖。類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和動(dòng)作)。

      第三類是行為圖:描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象之間的交互關(guān)系,其中狀態(tài)圖描述類的對(duì)象所有可能的狀態(tài),以及事件發(fā)生時(shí)的狀態(tài)的轉(zhuǎn)移條件,通常,狀態(tài)圖為類圖的補(bǔ)充,在實(shí)用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個(gè)狀態(tài)其行為受外界環(huán)境的影響并且狀態(tài)發(fā)生改變的類畫狀態(tài)圖,活動(dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)的約束關(guān)系,有利于識(shí)別并行的活動(dòng)。

      第四類是交互圖:描述對(duì)象間的交互關(guān)系。其中順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,他強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序。

      第五類是實(shí)現(xiàn)圖:其中構(gòu)建圖描述代碼部件的物理結(jié)構(gòu)和各部件之間的依賴關(guān)系,一個(gè)部件可能是一個(gè)資源代碼部件,一個(gè)二進(jìn)制部件或者一個(gè)可執(zhí)行部件。它包含邏輯類和實(shí)際類的有關(guān)信息。部件圖有利于分析和理解部件間的相互影響程度。

      下面分別描述9個(gè)圖。

      7.5.1 類圖

      類圖展示了一組類、接口和協(xié)作及它們間的關(guān)系,在建模中所建立的最常見(jiàn)的圖就是類圖。用類圖說(shuō)明系統(tǒng)的靜態(tài)設(shè)計(jì)視圖,包含主動(dòng)類的類圖——專注于系統(tǒng)的靜態(tài)進(jìn)程視圖。系統(tǒng)可有多個(gè)類圖,單個(gè)類圖僅表達(dá)了系統(tǒng)的一個(gè)方面。要在高層給出類的主要職責(zé),在低層給出類的屬性和操作。

      7.5.2對(duì)象圖

      對(duì)象圖展示了一組對(duì)象及它們間的關(guān)系。用對(duì)象圖說(shuō)明類圖中所反應(yīng)的事物實(shí)例的數(shù)據(jù)結(jié)構(gòu)和靜態(tài)快照。對(duì)象圖表達(dá)了系統(tǒng)的靜態(tài)設(shè)計(jì)視圖或靜態(tài)過(guò)程視圖,除了現(xiàn)實(shí)和原型的方面的因素外,它與類圖作用是相同的。

      7.5.3用例圖

      用例圖展現(xiàn)了一組用例、參與者以及它們間的關(guān)系??梢杂糜美龍D描述系統(tǒng)的靜態(tài)使用情況。在對(duì)系統(tǒng)行為組織和建模方面,用例圖的是相當(dāng)重要的。

      用例(use case):從用戶的觀點(diǎn)對(duì)系統(tǒng)行為的一個(gè)描述。用來(lái)從用戶的觀察角度收集系統(tǒng)需求。

      用例圖表達(dá)系統(tǒng)的外部事物(參與者)與系統(tǒng)的交互,它表達(dá)了系統(tǒng)的功能,即系統(tǒng)所提供的服務(wù)。

      整個(gè)軟件項(xiàng)目的開發(fā)可以采用Use Case 驅(qū)動(dòng)的方式進(jìn)行。

      7.5.4交互圖

      交互圖展現(xiàn)了按一定的目的進(jìn)行的一種交互,它由在一個(gè)上下文中的一組對(duì)象及它們間交互的信息組成。交互圖也可用于描述一個(gè)用例的行為。順序圖和協(xié)作圖都是交互圖,順序圖和協(xié)作圖可以相互轉(zhuǎn)換。

      順序圖和協(xié)作圖都是交互圖,它們既是等價(jià)的,又是有區(qū)別的。

      順序圖和協(xié)作圖都能等價(jià)的表現(xiàn)系統(tǒng)運(yùn)行中對(duì)象通過(guò)消息發(fā)生的交互行為。

      順序圖表示了時(shí)間的消息序列,便于分析交互的時(shí)序,但沒(méi)有表示靜態(tài)對(duì)象關(guān)系,順序圖可以有效地幫助人們觀察系統(tǒng)的順序行為。

      協(xié)作圖著重表示一個(gè)協(xié)作中的對(duì)象之間的聯(lián)系和消息。

      7.5.5順序圖

      展現(xiàn)了一組對(duì)象和由這組對(duì)象收發(fā)的消息,用于按時(shí)間順序?qū)刂屏鹘?。用順序圖說(shuō)明系統(tǒng)的動(dòng)態(tài)視圖。

      7.5.6協(xié)作圖

      展現(xiàn)了一組對(duì)象,這組對(duì)象間的連接以及這組對(duì)象收發(fā)的消息。它強(qiáng)調(diào)收發(fā)消息的對(duì)象的結(jié)構(gòu)組織,按組織結(jié)構(gòu)對(duì)控制流建模。

      協(xié)作圖顯示某組對(duì)象為了由一個(gè)用例描述的一個(gè)系統(tǒng)事件而與另一組對(duì)象進(jìn)行協(xié)

      作的交互圖。

      協(xié)作圖只對(duì)相互間有交互作用的對(duì)象和這些對(duì)象間的關(guān)系建模,而忽略了其他對(duì)象

      和關(guān)聯(lián)。

      協(xié)作圖中包括如下元素:1.對(duì)象(Object)、2.鏈(Link)和3.消息(Message)。

      協(xié)作圖的用途:

      如果按組織對(duì)控制流建模,應(yīng)該選擇使用協(xié)作圖。協(xié)作圖強(qiáng)調(diào)交互中實(shí)例間的結(jié)構(gòu)關(guān)系以及所傳送的消息。協(xié)作圖對(duì)復(fù)雜的迭代和分支的可視化以及對(duì)多并發(fā)控制流的可視化要比時(shí)序圖好。

      協(xié)作圖有別于時(shí)序圖的兩點(diǎn)特性:(1)協(xié)作圖有路徑(2)協(xié)作圖有順序號(hào)

      7.5.7狀態(tài)圖

      展示了一個(gè)特定對(duì)象的所有可能狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)間的轉(zhuǎn)移。一個(gè)狀態(tài)圖描述了一個(gè)狀態(tài)機(jī),用狀態(tài)圖說(shuō)明系統(tǒng)的動(dòng)態(tài)視圖。它對(duì)于接口、類或協(xié)作的行為建模尤為重要,可用它描述用例實(shí)例的生命周期。在任一給定的時(shí)刻,一個(gè)對(duì)象總是處于某一特定的狀態(tài)。

      狀態(tài)圖主要表現(xiàn)一個(gè)對(duì)象所經(jīng)歷的狀態(tài)序列,引起狀態(tài)或活動(dòng)轉(zhuǎn)移的事件,以及因狀態(tài)或活動(dòng)轉(zhuǎn)移而伴隨的動(dòng)作。

      7.5.8活動(dòng)圖

      活動(dòng)圖是一種特殊的狀態(tài)圖,描述需要做的活動(dòng)、執(zhí)行這些活動(dòng)的順序(多為并行的)以及工作流(完成工作所需要的步驟)。它對(duì)于系統(tǒng)的功能建模特別重要,強(qiáng)調(diào)對(duì)象間的控制流程。

      活動(dòng)圖實(shí)質(zhì)上是一種流程圖,只不過(guò)表現(xiàn)的是從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流。活動(dòng)圖描述活動(dòng)的序列,并且支持對(duì)帶條件的行為和并發(fā)行為表達(dá)。

      7.5.9時(shí)序圖

      在一個(gè)運(yùn)行的系統(tǒng)中,對(duì)象之間要發(fā)生交互,并且這些交互要經(jīng)歷一定的時(shí)間。

      順序圖表達(dá)的正是這種基于時(shí)間的動(dòng)態(tài)交互。重點(diǎn)是完成某個(gè)行為的對(duì)象類和這些對(duì)象類之間所傳遞的消息的時(shí)間順序。

      7.5.10構(gòu)件圖

      構(gòu)件圖展現(xiàn)了一組構(gòu)件之間的組織和依賴,用于對(duì)原代碼、可執(zhí)行的發(fā)布、物理數(shù)據(jù)庫(kù)和可調(diào)整的系統(tǒng)建模。

      組件圖代表系統(tǒng)的一個(gè)物理實(shí)現(xiàn)塊,代表邏輯模型元素如類、接口的物理打包。

      7.5.11部署圖

      部署圖展現(xiàn)了對(duì)運(yùn)行時(shí)處理節(jié)點(diǎn)以及其中構(gòu)件的配署。它描述系統(tǒng)硬件的物理拓?fù)浣Y(jié)構(gòu)(包括網(wǎng)絡(luò)布局和構(gòu)件在網(wǎng)絡(luò)上的位置),以及在此結(jié)構(gòu)上執(zhí)行的軟件(即運(yùn)行時(shí)軟構(gòu)件在節(jié)點(diǎn)中的分布情況)。用部署圖說(shuō)明系統(tǒng)結(jié)構(gòu)的靜態(tài)部署視圖,即說(shuō)明分布、交付和安裝的物理系統(tǒng)

      7.5.12區(qū)別

      1.以描述系統(tǒng)狀態(tài)轉(zhuǎn)移為主的狀態(tài)圖和活動(dòng)圖

      狀態(tài)圖:用來(lái)描述對(duì)象,子系統(tǒng),系統(tǒng)的生命周期。通過(guò)狀態(tài)圖可以了解一個(gè)對(duì)象所能達(dá)到的所有狀態(tài),以及對(duì)象收到的事件對(duì)對(duì)象狀態(tài)的影響。

      活動(dòng)圖:顯示動(dòng)作及其結(jié)果。著重描述操作(方法)實(shí)現(xiàn)中所完成的工作以及用例實(shí)例或?qū)ο笾械幕顒?dòng),它是狀態(tài)圖的一個(gè)變種。

      狀態(tài)圖與活動(dòng)圖的區(qū)別:活動(dòng)圖主要描述動(dòng)作及對(duì)象狀態(tài)改變的結(jié)果。狀態(tài)圖主要描述的是事件對(duì)對(duì)象狀態(tài)的影響。

      2.以描述系統(tǒng)系統(tǒng)對(duì)象通訊和交互為主的協(xié)作圖和序列圖

      序列圖:描述對(duì)象是如何交互的。重點(diǎn)放在消息序列上,描述消息在對(duì)象間是如何收發(fā)的。

      協(xié)作圖:描述協(xié)作對(duì)象的交互與鏈接。

      協(xié)作圖和序列圖的區(qū)別:協(xié)作圖和序列圖都是描述對(duì)象交互的,但是序列圖強(qiáng)調(diào)的是時(shí)間,協(xié)作圖強(qiáng)調(diào)的空間。

      7.6需求分析與用例建模

      7.6.1需求分析的任務(wù)

      需求分析的基本任務(wù)不是確定系統(tǒng)怎樣完成它的工作,而是確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。----準(zhǔn)確地回答“系統(tǒng)必須做什么?”。

      需求分析的步驟: 需求獲取 分析建模 文檔編寫 需求驗(yàn)證

      7.6.2類圖

      類(Class)、對(duì)象(Object)和它們之間的關(guān)系是面向?qū)ο蠹夹g(shù)中最基本的元素。類圖技術(shù)是OO方法的核心。

      類圖標(biāo)加上它們之間的關(guān)系就構(gòu)成了類圖。

      類圖用于對(duì)系統(tǒng)靜態(tài)設(shè)計(jì)視圖建模。與數(shù)據(jù)模型不同,它不僅顯示了信息的結(jié)構(gòu),同時(shí)還描述了系統(tǒng)的行為。

      類圖中可以包含接口,包,關(guān)系等建模元素,也可以包含對(duì)象,鏈等實(shí)例。

      類圖典型的應(yīng)用在下面三類建模:(1)對(duì)系統(tǒng)的詞匯建模(2)對(duì)簡(jiǎn)單協(xié)作建模

      (3)對(duì)邏輯數(shù)據(jù)庫(kù)模式建模

      類圖通常包含下述內(nèi)容:類、接口、協(xié)作、依賴、泛化和關(guān)聯(lián)關(guān)系。

      關(guān)系(Relationship)是事物間的關(guān)系。在類的關(guān)系中,最常用的4種分別為: 依賴(Dependency):它表示類之間的使用關(guān)系 泛化(Generalization):它表示類之間的一般和特殊的關(guān)系; 關(guān)聯(lián)(Association):它表示對(duì)象之間的結(jié)構(gòu)關(guān)系 實(shí)現(xiàn)(Realization):它是規(guī)格說(shuō)明和其實(shí)現(xiàn)之間的關(guān)系。

      類主要包含以下幾個(gè)部分

      (1)名稱(Name)名稱是每個(gè)類所必有的構(gòu)成,用于和其他類相區(qū)分。(2)屬性(Attribute)類的一個(gè)組成部分描述了類所代表事物的屬性(3)操作(Operation)操作是對(duì)類的對(duì)象所能做的事務(wù)的抽象

      類在UML中由專門的圖符表達(dá),是分成3個(gè)分隔區(qū)的矩形,頂端為類的名字,中間存放類的屬性、屬性的類型和值,第3個(gè)分隔區(qū)放操作、操作的參數(shù)表和返回類型,如下圖:

      7.6.3用例圖

      在UML中,一個(gè)用例模型由若干個(gè)用例圖(use case diagram)描述。用例圖是顯示一組用例、參與者以及它們之間關(guān)系的圖。

      用例圖是從用戶的角度來(lái)描述對(duì)軟件產(chǎn)品的需求,分析產(chǎn)品的功能和行為,因此,對(duì)整個(gè)軟件開發(fā)過(guò)程而言,用例圖是至關(guān)重要的。

      用例圖定義和描述了系統(tǒng)的外部可見(jiàn)行為,是分析、設(shè)計(jì)直至組裝測(cè)試的重要依據(jù)。讓用戶參與前期的系統(tǒng)分析與設(shè)計(jì)。

      用例圖的組成: 用例(Use Case)參與者(Actor)關(guān)系(Relationship)

      1.什么是參與者

      參與者:在系統(tǒng)之外,透過(guò)系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物。參與者可能是人、另外一個(gè)系統(tǒng)、時(shí)間的流逝等。

      UML中,參與者用“人形”圖標(biāo)來(lái)表示,名字寫在圖標(biāo)的下方。

      參與者

      2.什么是用例

      用例(use case)一個(gè)用例是用戶與計(jì)算機(jī)之間的一次典型交互作用。在UML中,用例被定義成系統(tǒng)執(zhí)行的一系列動(dòng)作(功能)。

      參與者和用例分別描述了“誰(shuí)來(lái)做?”和“做什么?”這兩個(gè)問(wèn)題。每個(gè)用例都必須有一個(gè)惟一的名字以區(qū)別于其他用例。用例用一個(gè)橢圓來(lái)表示,用例的名字可以書寫在橢圓的內(nèi)部或下方。用例的UML圖標(biāo)如圖所示。3.用例間、用例與參與者的關(guān)系

      (1)泛化關(guān)系(Generalization):一個(gè)用例可以被特別列舉為一個(gè)或多個(gè)子用例,這被稱為用例泛化:

      (2)包含關(guān)系(Include)一個(gè)用例可以簡(jiǎn)單地包含其他用例具有的行為,并把它所包含的用例行為作為自身行為的一部分,這被稱作包含關(guān)系。

      (3)擴(kuò)展關(guān)系(Extend):一個(gè)用例也可以被定義為基礎(chǔ)用例的增量擴(kuò)展,這稱作擴(kuò)展關(guān)系,擴(kuò)展關(guān)系是把新行為插入到已有用例的方法。

      (4)關(guān)聯(lián)關(guān)系:關(guān)聯(lián)關(guān)系表示參與者與用例之間的通信。

      4.用例間的關(guān)系

      (1)泛化關(guān)系

      當(dāng)多個(gè)用例共同擁有一種類似的結(jié)構(gòu)和行為的時(shí)候我們可以將它們的共性抽象成為父用例,其他的用例作為泛化關(guān)系中的子用例。

      用例可以被特別列舉為一個(gè)或多個(gè)子用例,這被稱做用例泛化。(2)包含關(guān)系

      包含是指基本用例(base use case)會(huì)用到包含用例(inclusion),具體地講,就是將包含用例的事件流插入到基礎(chǔ)用例的事件流中。包含用例是可重用的用例──多個(gè)用例的公共用例。

      (3)擴(kuò)展關(guān)系

      將擴(kuò)展用例的事件流在一定的條件下按照相應(yīng)的擴(kuò)展點(diǎn)插入到基礎(chǔ)用例中。基礎(chǔ)用例不必知道擴(kuò)展用例的任何細(xì)節(jié),它僅為其提供擴(kuò)展點(diǎn)。擴(kuò)展用例的行為是否被執(zhí)行要取決于主事件流中的判定點(diǎn)。

      擴(kuò)展關(guān)系是從擴(kuò)展用例到基本用例的關(guān)系,它說(shuō)明為擴(kuò)展用例定義的行為如何插入到為基本用例定義的行為中。它是以隱含形式插入的,也就是說(shuō),擴(kuò)展用例并不在基本用例中顯示。在以下幾種情況下,可使用擴(kuò)展用例:

      a.表明用例的某一部分是可選的系統(tǒng)行為(這樣,您就可以將模型中的可選行為和必選行為分開);

      b.表明只在特定條件(如例外條件)下才執(zhí)行的分支流;

      5.用例之間的關(guān)系

      包含用例與擴(kuò)展用例的區(qū)別

      ①相對(duì)于基礎(chǔ)用例,擴(kuò)展用例是可選的,而包含用例則不是。

      ②如果缺少擴(kuò)展用例,基礎(chǔ)用例還是完整的,而缺少包含用例,則基礎(chǔ)用例就不完整了。③擴(kuò)展用例的執(zhí)行需要滿足某種條件,而包含用例不需要。④擴(kuò)展用例的執(zhí)行會(huì)改變基礎(chǔ)用例的行為,而包含用例不會(huì)。

      6.識(shí)別用例的方法:

      ①參與者希望系統(tǒng)提供什么功能;

      ②系統(tǒng)是否存儲(chǔ)和檢索信息;如果是,這個(gè)行為由哪個(gè)參與者觸發(fā); ③當(dāng)系統(tǒng)改變狀態(tài)時(shí),是否通知參與者;

      ④是否存在影響系統(tǒng)的外部事件,是哪個(gè)參與者通知系統(tǒng)這些外部事件。

      7.6.4活動(dòng)圖

      1.什么是活動(dòng)圖

      活動(dòng)圖是UML中描述系統(tǒng)動(dòng)態(tài)行為的圖之一,是描述系統(tǒng)或業(yè)務(wù)的一序列活動(dòng)構(gòu)成的控制流,它描述了系統(tǒng)從一種活動(dòng)轉(zhuǎn)換到另一種活動(dòng)的整個(gè)過(guò)程。

      2.活動(dòng)圖用途

      活動(dòng)圖用于對(duì)系統(tǒng)的動(dòng)態(tài)行為建模。

      活動(dòng)圖常用來(lái)描述業(yè)務(wù)或軟件系統(tǒng)的活動(dòng)軌跡,描述了系統(tǒng)的活動(dòng)控制流程。我們常用活動(dòng)圖對(duì)業(yè)務(wù)過(guò)程、工作流和用例實(shí)現(xiàn)進(jìn)行建模。

      活動(dòng)圖主要應(yīng)用對(duì)兩個(gè)方面建模:一是在業(yè)務(wù)分析階段,對(duì)工作流程進(jìn)行建模;二是在系統(tǒng)分析和設(shè)計(jì)階段,對(duì)操作流程進(jìn)行建模。

      7.6.5面向?qū)ο蠓治鼋⒌?類模型

      對(duì)象模型、動(dòng)態(tài)模型、功能模型

      對(duì)象模型

      對(duì)象模型表示了靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它是從客觀世界實(shí)體的對(duì)象關(guān)系角度來(lái)描述,表現(xiàn)了對(duì)象的相互關(guān)系。該模型主要關(guān)心系統(tǒng)中對(duì)象的結(jié)構(gòu)、屬性和操作,它是分析階段三個(gè)模型的核心,是其他兩個(gè)模型的框架。[2]

      ⒈對(duì)象和類 ⑴對(duì)象。

      對(duì)象建模的目的就是描述對(duì)象。⑵ 類。

      通過(guò)將對(duì)象抽象成類,我們可以使問(wèn)題抽象化,抽象增強(qiáng)了模型的歸納能力。⑶ 屬性。

      屬性指的是類中對(duì)象所具有的性質(zhì)(數(shù)據(jù)值)。⑷ 操作和方法。

      操作是類中對(duì)象所使用的一種功能或變換。類中的各對(duì)象可以共享操作,每個(gè)操作都有一個(gè)目標(biāo)對(duì)象作為其隱含參數(shù)。

      方法是類的操作的實(shí)現(xiàn)步驟。⒉關(guān)聯(lián)和鏈

      關(guān)聯(lián)是建立類之間關(guān)系的一種手段,而鏈則是建立對(duì)象之間關(guān)系的一種手段。⑴ 關(guān)聯(lián)和鏈的含義。

      鏈表示對(duì)象間的物理與概念聯(lián)結(jié),關(guān)聯(lián)表示類之間的一種關(guān)系,鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例,關(guān)聯(lián)是鏈的抽象。

      ⑵ 角色。

      角色說(shuō)明類在關(guān)聯(lián)中的作用,它位于關(guān)聯(lián)的端點(diǎn)。⑶ 受限關(guān)聯(lián)。

      受限關(guān)聯(lián)由兩個(gè)類及一個(gè)限定詞組成,限定詞是一種特定的屬性,用來(lái)有效的減少關(guān)聯(lián)的重?cái)?shù),限定詞在關(guān)聯(lián)的終端對(duì)象集中說(shuō)明。

      限定提高了語(yǔ)義的精確性,增強(qiáng)了查詢能力,在現(xiàn)實(shí)世界中,常常出現(xiàn)限定詞。⑷ 關(guān)聯(lián)的多重性。

      關(guān)聯(lián)的多重性是指類中有多少個(gè)對(duì)象與關(guān)聯(lián)的類的一個(gè)對(duì)象相關(guān)。重?cái)?shù)常描述為“一”或“多”。⒊類的層次結(jié)構(gòu) ⑴ 聚集關(guān)系。

      聚集是一種“整體-部分”關(guān)系。在這種關(guān)系中,有整體類和部分類之分。聚集最重要的性質(zhì)是傳遞性,也具有逆對(duì)稱性。

      聚集可以有不同層次,可以把不同分類聚集起來(lái)得到一顆簡(jiǎn)單的聚集樹,聚集樹是一種簡(jiǎn)單表示,比畫很多線來(lái)將部分類聯(lián)系起來(lái)簡(jiǎn)單得多,對(duì)象模型應(yīng)該容易地反映各級(jí)層次。

      ⑵一般化關(guān)系。

      一般化關(guān)系是在保留對(duì)象差異的同時(shí)共享對(duì)象相似性的一種高度抽象方式。它是“一般---具體”的關(guān)系。一般化類稱為你類,具體類又能稱為子類,各子類繼承了父類的性質(zhì),而各子類的一些共同性質(zhì)和操作又歸納到你類中。因此,一般化關(guān)系和繼承是同時(shí)存在的。一般化關(guān)系的符號(hào)表示是在類關(guān)聯(lián)的連線上加一個(gè)小三角形。

      ⒋對(duì)象模型

      ⑴模板。模板是類、關(guān)聯(lián)、一般化結(jié)構(gòu)的邏輯組成。⑵對(duì)象模型。

      對(duì)象模型是由一個(gè)或若干個(gè)模板組成。模板將模型分為若干個(gè)便于管理的子塊,在整個(gè)對(duì)象模型和類及關(guān)聯(lián)的構(gòu)造塊之間,模板提供了一種集成的中間單元,模板中的類名及關(guān)聯(lián)名是唯一的

      動(dòng)態(tài)模型

      動(dòng)態(tài)模型是與時(shí)間和變化有關(guān)的系統(tǒng)性質(zhì)。該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬間的、行為化的系統(tǒng)控制

      性質(zhì),它關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,它表示從對(duì)象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了對(duì)象的相互行為。

      該模型描述的系統(tǒng)屬性是觸發(fā)事件、事件序列、狀態(tài)、事件與狀態(tài)的組織。使用狀態(tài)圖作為描述工具。它涉及到事件、狀態(tài)、操作等重要概念。

      ⒈事件

      事件是指定時(shí)刻發(fā)生的某件事。

      ⒉狀態(tài)

      狀態(tài)是對(duì)象屬性值的抽象。對(duì)象的屬性值按照影響對(duì)象顯著行為的性質(zhì)將其歸并到一個(gè)狀態(tài)中去。狀態(tài)指明了對(duì)象對(duì)輸入事件的響應(yīng)。

      ⒊狀態(tài)圖

      狀態(tài)圖是一個(gè)標(biāo)準(zhǔn)的計(jì)算機(jī)概念,他是有限自動(dòng)機(jī)的圖形表示,這里把狀態(tài)圖作為建立動(dòng)態(tài)模型的圖形工具。

      狀態(tài)圖反映了狀態(tài)與事件的關(guān)系。當(dāng)接收一事件時(shí),下一狀態(tài)就取決于當(dāng)前狀態(tài)和所接收的該事件,由該事件引起的狀態(tài)變化稱為轉(zhuǎn)換。

      狀態(tài)圖是一種圖,用結(jié)點(diǎn)表示狀態(tài),結(jié)點(diǎn)用圓圈表示;圓圈內(nèi)有狀態(tài)名,用箭頭連線表示狀態(tài)的轉(zhuǎn)換,上面標(biāo)記事件名,箭頭方向表示轉(zhuǎn)換的方向。

      功能模型

      功能模型描述了系統(tǒng)的所有計(jì)算。功能模型指出發(fā)生了什么,動(dòng)態(tài)模型確定什么時(shí)候發(fā)生,而對(duì)象模型確定發(fā)生的客體。功能模型表明一個(gè)計(jì)算如何從輸入值得到輸出值,它不考慮計(jì)算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖用來(lái)表示從源對(duì)象到目標(biāo)對(duì)象的數(shù)據(jù)值的流向,它不包含控制信息,控制信息在動(dòng)態(tài)模型中表示,同時(shí)數(shù)據(jù)流圖也不表示對(duì)象中值的組織,值的組織在對(duì)象模型中表示。

      數(shù)據(jù)流圖中包含有處理、數(shù)據(jù)流、動(dòng)作對(duì)象和數(shù)據(jù)存儲(chǔ)對(duì)象。⒈處理

      數(shù)據(jù)流圖中的處理用來(lái)改變數(shù)據(jù)值。最低層處理是純粹的函數(shù),一張完整的數(shù)據(jù)流圖是一個(gè)高層處理。

      ⒉數(shù)據(jù)流

      數(shù)據(jù)流圖中的數(shù)據(jù)流將對(duì)象的輸出與處理、處理與對(duì)象的輸入、處理與處理聯(lián)系起來(lái)。在一個(gè)計(jì)算機(jī)中,用數(shù)據(jù)流來(lái)表示一中間數(shù)據(jù)值,數(shù)據(jù)流不能改變數(shù)據(jù)值。

      ⒊動(dòng)作對(duì)象

      動(dòng)作對(duì)象是一種主動(dòng)對(duì)象,它通過(guò)生成或者使用數(shù)據(jù)值來(lái)驅(qū)動(dòng)數(shù)據(jù)流圖。

      ⒋數(shù)據(jù)存儲(chǔ)對(duì)象

      數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)是被動(dòng)對(duì)象,它用來(lái)存儲(chǔ)數(shù)據(jù)。它與動(dòng)作對(duì)象不一樣,數(shù)據(jù)存儲(chǔ)本身不產(chǎn)生任何操作,它只響應(yīng)存儲(chǔ)和訪問(wèn)的要求。

      7.7設(shè)計(jì)階段

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

      詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。

      詳細(xì)設(shè)計(jì)的目標(biāo): 設(shè)計(jì)出的處理過(guò)程應(yīng)該盡可能簡(jiǎn)明易懂。詳細(xì)設(shè)計(jì)的任務(wù):

      (1)為每個(gè)模塊確定采用的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過(guò)程,寫出模塊的詳細(xì)過(guò)程性描述;

      (2)確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu);為以后的編寫程序做好充分的準(zhǔn)備。(3)確定模塊接口的細(xì)節(jié)。

      7.7.2總體設(shè)計(jì)

      1.面向?qū)ο笤O(shè)計(jì)

      面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則:優(yōu)秀設(shè)計(jì)就是使得系統(tǒng)在其整個(gè)生命周期中的總開銷最小的設(shè)計(jì), 其主要特點(diǎn)就是容易維護(hù)。

      面向?qū)ο笤O(shè)計(jì)(OOD,Object-Oriented Design)是面向?qū)ο蠓治龅綄?shí)現(xiàn)的一個(gè)橋梁。面向?qū)ο蠓治鍪菍⒂脩粜枨蠼?jīng)過(guò)分析后,建立問(wèn)題域精確模型的過(guò)程;而面向?qū)ο笤O(shè)計(jì)則根據(jù)面向?qū)ο蠓治龅玫降男枨竽P?,建立求解域模型的過(guò)程。即分析必須搞清楚系統(tǒng)“做什么”,而設(shè)計(jì)必須搞清楚系統(tǒng)“怎么做”,從分析到設(shè)計(jì)不是傳統(tǒng)方法的轉(zhuǎn)換,而是平滑(無(wú)縫)過(guò)渡,而求解域模型是系統(tǒng)實(shí)現(xiàn)的依據(jù)。

      靜態(tài)結(jié)構(gòu)設(shè)計(jì): ? 類設(shè)計(jì) ? 包設(shè)計(jì) ? 接口設(shè)計(jì)

      動(dòng)態(tài)結(jié)構(gòu)設(shè)計(jì)(行為和交互建模): ? 對(duì)象如何進(jìn)行交互的

      2.GUI(圖形用戶界面)設(shè)計(jì)概述

      對(duì)于用戶來(lái)說(shuō),一個(gè)友好的界面是至關(guān)重要的。

      用戶界面(User Interface)的設(shè)計(jì)質(zhì)量直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和使用壽命,因此,對(duì)人機(jī)界面的設(shè)計(jì)必須給予足夠的重視。

      良好的GUI設(shè)計(jì)原則

      1、關(guān)注用戶及其任務(wù),而不是技術(shù)

      2、首先考慮功能,其次才是表現(xiàn)

      3、與用戶對(duì)任務(wù)的看法保持一致

      4、設(shè)計(jì)要符合常見(jiàn)情況

      5、不要分散用戶對(duì)他們目標(biāo)的注意力

      6、促進(jìn)學(xué)習(xí),從外(用戶)到里(設(shè)計(jì)人員)思考,而不是相反。

      7、傳遞信息,而不僅僅是數(shù)據(jù)

      8、設(shè)計(jì)應(yīng)滿足響應(yīng)需求

      9、通過(guò)用戶試用發(fā)現(xiàn)錯(cuò)誤,然后修復(fù)它

      3.數(shù)據(jù)庫(kù)設(shè)計(jì)

      設(shè)計(jì)原則:

      每一個(gè)類成為一個(gè)數(shù)據(jù)庫(kù)表。關(guān)系映射:

      (1)一對(duì)多的關(guān)系映射為數(shù)據(jù)庫(kù)表的主外鍵關(guān)聯(lián)(1方的主鍵加入n方成為外鍵)

      (2)一對(duì)一的關(guān)系映射為數(shù)據(jù)庫(kù)表的主外鍵關(guān)聯(lián)(1方的主鍵加入另一方成為外鍵)

      (3)多對(duì)多的關(guān)系映射:產(chǎn)生第三張表,將兩個(gè)多方的主鍵加入其中成為外鍵,兩個(gè)外鍵的組合成為主鍵。

      利用數(shù)據(jù)庫(kù)三范式檢查表,從而考察領(lǐng)域類圖的分析是否合理,消除冗余數(shù)據(jù)。檢查數(shù)據(jù)是否能夠反映用例視圖的需要;進(jìn)一步與用戶再次確認(rèn)使用的數(shù)據(jù)。

      7.8注釋

      夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。注釋決不是可有可無(wú)的。一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個(gè)源程序的1/3到1/2,甚至更多。

      注釋分為兩類:序言性注釋和功能性注釋。

      1.序言性注釋

      通常置于每個(gè)程序模塊的開頭部分,它應(yīng)當(dāng)給出程序的整體說(shuō)明,對(duì)于理解程序本身具有引導(dǎo)作用。

      序言性注釋包括: 程序標(biāo)題;

      有關(guān)本模塊功能和目的的說(shuō)明; 主要算法;

      接口說(shuō)明:包括調(diào)用形式,參數(shù)描述,子程序清單;

      有關(guān)數(shù)據(jù)描述:重要的變量及其用途,約束或限制條件,以及其它有關(guān)信息; 模塊位置:在哪一個(gè)源文件中,或隸屬于哪一個(gè)軟件包;

      開發(fā)簡(jiǎn)歷:模塊設(shè)計(jì)者,復(fù)審者,復(fù)審日期,修改日期及有關(guān)說(shuō)明等。

      2.功能性注釋

      功能性注釋嵌在源程序體中,用以描述其后的語(yǔ)句或程序段是在做什么工作,或是執(zhí)行了下面的語(yǔ)句會(huì)怎么樣,而不要解釋下面怎么做。

      要點(diǎn):

      描述一段程序,而不是每一個(gè)語(yǔ)句; 用縮進(jìn)和空行,使程序與注釋容易區(qū)別;

      7.9軟件測(cè)試

      軟件測(cè)試的定義:軟件測(cè)試是使用人工和自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢測(cè)被測(cè)試軟件系統(tǒng)是否滿足規(guī)定的需要,或是弄清楚被測(cè)系統(tǒng)的預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。

      黑盒測(cè)試:僅需要知道被測(cè)試對(duì)象的輸入和預(yù)期輸出,不需要了解代碼實(shí)現(xiàn)的細(xì)節(jié)。測(cè)試方法

      主要分為兩類:功能層面的測(cè)試方法和函數(shù)層面的測(cè)試方法(邊界值測(cè)試、等價(jià)類測(cè)試、基于決策表測(cè)試)。側(cè)重于系統(tǒng)業(yè)務(wù)流程的梳理,是基于動(dòng)態(tài)業(yè)務(wù)過(guò)程設(shè)計(jì)測(cè)試用例。

      白盒測(cè)試:是針對(duì)程序代碼展開的測(cè)試,分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試:關(guān)注對(duì)象包括源代碼和程序結(jié)構(gòu)。靜態(tài)白盒測(cè)試的方法是代碼檢查。靜態(tài)測(cè)試不需要運(yùn)行程序和設(shè)計(jì)測(cè)試用例,側(cè)重于源代碼的檢查和優(yōu)化,直接查看源代碼和執(zhí)行代碼,直接定位代碼中的缺陷。動(dòng)態(tài)測(cè)試側(cè)重于程序結(jié)構(gòu)的測(cè)試。

      測(cè)試用例的定義:測(cè)試用例是一組測(cè)試輸入,執(zhí)行條件和預(yù)期結(jié)果。目的是要滿足一個(gè)特定的目標(biāo)。如果執(zhí)行一條特定的程序路徑或者檢驗(yàn)是否符合一個(gè)特定的需求的用例。測(cè)試用例:輸入+輸出+測(cè)試環(huán)境測(cè)試環(huán)境包括:硬件環(huán)境,軟件環(huán)境,網(wǎng)絡(luò)環(huán)境,歷史數(shù)據(jù)。

      測(cè)試用例分為兩個(gè)階段:測(cè)試用例分析階段,測(cè)試用例設(shè)計(jì)階段。

      7.9.1測(cè)試和調(diào)試的區(qū)別

      1、目的不同

      軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,至于找出錯(cuò)誤的原因和錯(cuò)誤發(fā)生的地方不是軟件測(cè)試的任務(wù),而是調(diào)試的任務(wù).調(diào)試的目的是為了證明程序的正確,因此它必須不斷地排除錯(cuò)誤.它們的出發(fā)點(diǎn)不一樣。前者是挑錯(cuò),是一種挑剔過(guò)程,屬于質(zhì)盤保證活動(dòng)。后者是排錯(cuò),是一種排除過(guò)程,是編碼活動(dòng)的一部分。

      2、任務(wù)不同

      既然軟件測(cè)試屬于質(zhì)量保證活動(dòng),因此它貫穿于整個(gè)開發(fā)過(guò)程.從需求分析開始,就要制訂軟件測(cè)試計(jì)劃,軟件設(shè)計(jì)時(shí)要設(shè)計(jì)系統(tǒng)軟件測(cè)試、集成側(cè)試用例,編碼階段要設(shè)計(jì)單元軟件測(cè)試用例并進(jìn)行單元軟件測(cè)試,軟件測(cè)試階段要進(jìn)行集成軟件測(cè)試、系統(tǒng)軟件測(cè)試等,直到產(chǎn)品交付。只要有修改就有軟件測(cè)試,產(chǎn)品交付后同樣。它是比較有規(guī)律的活動(dòng),有系統(tǒng)的方法、原則作指導(dǎo)。

      而調(diào)試是編碼活動(dòng)的一部分,因此有編碼就有調(diào)試.它的任務(wù)主要就是排錯(cuò)。調(diào)試的方法經(jīng)常與使用的開發(fā)工具有關(guān),例如:解釋型的開發(fā)工具可以交互式調(diào)試,編譯型開發(fā)工具就很難較好地查錯(cuò)。當(dāng)然它有一些啟發(fā)式的方法,它是一種比較依賴開發(fā)人員經(jīng)驗(yàn)的活動(dòng)。

      3、指導(dǎo)原則和方法不同

      軟件側(cè)試是一種有規(guī)律的活動(dòng),有一系列軟件軟件測(cè)試的原則.其中主要是制訂側(cè)試計(jì)劃,然后嚴(yán)格執(zhí)行.其次是一種挑剔性行為,因此它不但要側(cè)試軟件應(yīng)該做的,還需要側(cè)試軟件不應(yīng)該做的事情。調(diào)試所遵循的規(guī)律主要是一些啟發(fā)式規(guī)則,是一個(gè)推理過(guò)程。例如使用歸納法、演繹法、回溯法等。

      軟件測(cè)試的輸出是預(yù)知的,其軟件測(cè)試用例必須包括預(yù)期的結(jié)果,而調(diào)試的輸出大多是不可預(yù)見(jiàn)的,需要調(diào)試者去解釋、去發(fā)現(xiàn)產(chǎn)生的原因。

      4、操作者

      因?yàn)樾睦頎顟B(tài)是軟件測(cè)試程序的障礙,所以執(zhí)行軟件測(cè)試的人一般不是開發(fā)人員,以使軟件測(cè)試更客觀、更有效,而調(diào)試人員一般都是開發(fā)人員.7.9.2軟件維護(hù)

      軟件維護(hù)活動(dòng)類型總起來(lái)大概有四種:糾錯(cuò)性維護(hù)(校正性維護(hù))、適應(yīng)性維護(hù)、完善性維護(hù)或增強(qiáng)、預(yù)防性維護(hù)或再工程。

      改正性維護(hù)

      改正性維護(hù)是指改正在系統(tǒng)開發(fā)階段已發(fā)生而系統(tǒng)測(cè)試階段尚未發(fā)現(xiàn)的錯(cuò)誤。這方面的維護(hù)工作量要占整個(gè)維護(hù)工作量的17%~21%。所發(fā)現(xiàn)的錯(cuò)誤有的不太重要,不影響系統(tǒng)的正常運(yùn)行,其維護(hù)工作可隨時(shí)進(jìn)行:而有的錯(cuò)誤非常重要,甚至影響整個(gè)系統(tǒng)的正常運(yùn)行,其維護(hù)工作必須制定計(jì)劃,進(jìn)行修改,并且要進(jìn)行復(fù)查和控制。

      適應(yīng)性維護(hù)

      適應(yīng)性維護(hù)是指使用軟件適應(yīng)信息技術(shù)變化和管理需求變化而進(jìn)行的修改。這方面的維護(hù)工作量占整個(gè)維護(hù)工作量的18%~25%。由于計(jì)算機(jī)硬件價(jià)格的不斷下降,各類系統(tǒng)軟件屢出不窮,人們常常為改善系統(tǒng)硬件環(huán)境和運(yùn)行環(huán)境而產(chǎn)生系統(tǒng)更新?lián)Q代的需求;企業(yè)的外部市場(chǎng)環(huán)境和管理需求的不斷變化也使得各級(jí)管理人員不斷提出新的信息需求。這些因素都將導(dǎo)致適應(yīng)性維護(hù)工作的產(chǎn)生。進(jìn)行這方面的維護(hù)工作也要像系統(tǒng)開發(fā)一樣,有計(jì)劃、有步驟地進(jìn)行。

      完善性維護(hù)

      完善性維護(hù)是為擴(kuò)充功能和改善性能而進(jìn)行的修改,主要是指對(duì)已有的軟件系統(tǒng)增加一些在系統(tǒng)分析和設(shè)計(jì)階段中沒(méi)有規(guī)定的功能與性能特征。這些功能對(duì)完善系統(tǒng)功能是非常必要的。另外,還包括對(duì)處理效率和編寫程序的改進(jìn),這方面的維護(hù)占整個(gè)維護(hù)工作的50%~60%,比重較大.也是關(guān)系到系統(tǒng)開發(fā)質(zhì)量的重要方面。這方面的維護(hù)除了要有計(jì)劃、有步驟地完成外.還要注意將相關(guān)的文檔資料加入到前面相應(yīng)的文檔中去。

      預(yù)防性維護(hù)

      預(yù)防性維護(hù)為了改進(jìn)應(yīng)用軟件的可靠性和可維護(hù)性,為了適應(yīng)未來(lái)的軟硬件環(huán)境的變化,應(yīng)主動(dòng)增加預(yù)防性的新的功能,以使應(yīng)用系統(tǒng)適應(yīng)各類變化而不被淘汰。例如將專用報(bào)表功能改成通用報(bào)表生成功能,以適應(yīng)將來(lái)報(bào)表格式的變化。這方面的維護(hù)工作量占整個(gè)維護(hù)工作量的4%左右。

      第一章

      1.軟件有哪些種類?

      答:1.按功能特征進(jìn)行劃分:

      (1)系統(tǒng)軟件(2)支撐軟件(3)應(yīng)用軟件

      2.按規(guī)模大小進(jìn)行劃分

      微型、小型、大型、甚大型、極大型

      4.結(jié)合自己的親身經(jīng)歷,談?wù)勡浖ぞ咴谲浖_發(fā)過(guò)程中的作用。

      使軟件開發(fā)更加模式化,工程化,從而提高軟件開發(fā)的效率和封裝性。

      第二章

      2.軟件瀑布模型為什么要?jiǎng)澐蛛A段?各個(gè)階段的任務(wù)是什么?

      在軟件開發(fā)早期,開發(fā)只是被簡(jiǎn)單地分成編寫代碼和修改代碼兩個(gè)階段。往往在拿到項(xiàng)目后立刻編寫程序,然后調(diào)試通過(guò)后直接交付給用戶使用。如果應(yīng)用中出現(xiàn)錯(cuò)誤,或者有新的要求,都需要重新修改代碼。這種小作坊式的軟件開發(fā)方法有明顯的弊端,如缺乏統(tǒng)的項(xiàng)目規(guī)劃、不太重視需求的獲取和分析、對(duì)軟件的測(cè)試和維護(hù)考慮不周等,這些都會(huì)導(dǎo)致軟件項(xiàng)目的失敗。

      概念階段:計(jì)劃、需求分析

      開發(fā)階段:設(shè)計(jì)、編碼、測(cè)試

      維護(hù)階段:運(yùn)行維護(hù)

      3.舉例說(shuō)明哪些項(xiàng)目的開發(fā)適用于原型模型或螺旋模型,哪些不適于采用這兩種模型。

      螺旋模型適合于大型軟件的開發(fā),應(yīng)該說(shuō)它是最為實(shí)際的方法,它吸收了軟件工程“演化”的概念,使得開發(fā)人員和客戶對(duì)每個(gè)演化層出現(xiàn)的風(fēng)險(xiǎn)有所了解,繼而做出應(yīng)有的反應(yīng)。

      不適用:小型軟件。

      原型般是指對(duì)某種產(chǎn)品進(jìn)行模擬的初始版本或者原始模型,在工程領(lǐng)域中具有廣泛應(yīng)用。

      不適用:大型軟件項(xiàng)目;含有對(duì)于計(jì)算量大、邏輯性較強(qiáng)的程序模塊:

      第三章

      1.可行性研究的任務(wù)是什么?

      可行性研究的任務(wù)是以最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。簡(jiǎn)單的說(shuō),可行性研究的最終結(jié)果是決定項(xiàng)目y做還是小做”而不是“如何做”。2.項(xiàng)目開發(fā)計(jì)劃有哪些內(nèi)容?

      引言(目的、背景、參考文獻(xiàn)、術(shù)語(yǔ));項(xiàng)目概述(功能、條件、運(yùn)行環(huán)境、產(chǎn)品、程序、文檔、服務(wù)、驗(yàn)收標(biāo)準(zhǔn)、實(shí)施計(jì)劃、工作任務(wù)分解、進(jìn)度、預(yù)算、人員)

      第四章

      1.什么是需求工程?需求工程包括哪些活動(dòng)?

      需求工程是指應(yīng)用已證實(shí)有效的技術(shù)、方法進(jìn)行需求分析,確定客戶需求,幫助分析人員理解問(wèn)題并定義目標(biāo)系統(tǒng)的所有外部特征的 門學(xué)科。它通過(guò)合適的工具和記號(hào)系統(tǒng)地描述待開發(fā)系統(tǒng),及其行為特征和相關(guān)約束,形成需求文檔;并對(duì)用戶不斷變化的需求演進(jìn)給予支持。

      一個(gè)良好的需求開發(fā)過(guò)程應(yīng)該包括需求獲取、需求分析與建模、編寫需求規(guī)格說(shuō)明書和需求評(píng)審4個(gè)主要活動(dòng)。

      2.需求工程過(guò)程包括哪些主要活動(dòng)? 需求開發(fā)過(guò)程應(yīng)該包括需求獲取、需求分析與建模、編寫需求規(guī)格說(shuō)明書和需求評(píng)審4個(gè)主要活動(dòng)。3.有哪兩種主要的需求分析模型?它們的主要思想是什么?

      答:面向?qū)ο蠓治瞿P?,結(jié)構(gòu)化分析模型。前者是采用面向?qū)ο蟮乃枷脒M(jìn)行軟件需求分析的建模過(guò)程,而后者模型的核心是DD,它是設(shè)計(jì)各種數(shù)據(jù)對(duì)象的總和。他們的模型分別起到了描述數(shù)據(jù)模型,功能模型與行為模型的作用。

      4.需求規(guī)格說(shuō)明書的主要作用是什么?應(yīng)該包括哪些主要內(nèi)容? 作用:

      (1)作為用戶方和開發(fā)方之間的合同,為雙方相互了解提供基礎(chǔ)。

      (2)反映問(wèn)題的結(jié)構(gòu),作為系統(tǒng)設(shè)計(jì)和編碼的依據(jù)。

      (3)作為測(cè)試和驗(yàn)收目標(biāo)系統(tǒng)的依據(jù)。內(nèi)容:

      用戶可以通過(guò)需求規(guī)格說(shuō)明書檢查需求描述是否滿足原來(lái)的期望。設(shè)計(jì)人員根據(jù)軟件需求規(guī)格說(shuō)明書的描述了解所需開發(fā)軟件的功能和性能,以及開發(fā)軟件時(shí)必須滿足的約束,將其作為軟件設(shè)計(jì)的依據(jù)。測(cè)試人員根據(jù)軟件需求規(guī)格說(shuō)明書中對(duì)產(chǎn)品的描述,設(shè)計(jì)測(cè)試計(jì)劃、測(cè)試用例和測(cè)試過(guò)程。產(chǎn)品發(fā)布人員根據(jù)軟件需求規(guī)格說(shuō)明和用戶界面設(shè)計(jì)編寫用戶手冊(cè)和幫助信息

      第五章

      2.簡(jiǎn)述數(shù)據(jù)流圖分解時(shí)的注意事項(xiàng)。

      ?上層可分解得快些(即分解成子數(shù)據(jù)處理個(gè)數(shù)多些),這是因?yàn)樯蠈邮蔷C合性描述,對(duì)可讀性的影(即分解成的子數(shù)據(jù)處理個(gè)數(shù)多些),這是因?yàn)樯蠈邮蔷C合性描述,對(duì)可讀性的影響小。而下層應(yīng)分解得慢性。

      ?在不影響可讀性的前提下,應(yīng)適當(dāng)多分解成幾部分,以減少分解層數(shù)。3.數(shù)據(jù)字典的作用是什么?它有哪些基本內(nèi)容? ?分解應(yīng)自然,概念上要合理、清晰。

      作用:數(shù)據(jù)字典作為分析階段的工具,有助于改進(jìn)分析人員和用戶.間的通信,進(jìn)而消除很多的誤解,同時(shí)也有助于改進(jìn)不同開發(fā)人員之間的通信;.內(nèi)容:數(shù)據(jù)字典的內(nèi)容主要是對(duì)數(shù)據(jù)流圖中的數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、加工邏輯、數(shù)據(jù)存儲(chǔ)和外部實(shí)體

      第六章

      1.什么是面向?qū)ο蠓椒??與傳統(tǒng)軟件開發(fā)方法相比,面向?qū)ο蠓椒ㄓ惺裁磧?yōu)點(diǎn)? 是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過(guò)程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方法。優(yōu)點(diǎn):

      1.符合人們對(duì)問(wèn)題的認(rèn)識(shí)習(xí)慣

      2.增強(qiáng)問(wèn)題域與最終軟件系統(tǒng)之間的銜接

      3.易于維護(hù)和復(fù)用

      4.易于開發(fā)大型軟件產(chǎn)品

      2.什么是模型?在軟件開發(fā)過(guò)程中為什么需要建立模型?

      在軟件開發(fā)過(guò)程中,建立軟件模型具有十分重要的作用,主要體現(xiàn)在以下幾個(gè)方面:

      有助于問(wèn)題的簡(jiǎn)化,通過(guò)抽象降低復(fù)雜性;

      有助于和其他開發(fā)小組成員,各種用戶以及系統(tǒng)相關(guān)者進(jìn)行交流;

      有助于維護(hù)人員了解軟件設(shè)計(jì)的思路和細(xì)節(jié),為以后的維護(hù)和升級(jí)提供了文檔。

      第七章

      1.面向?qū)ο蠓治霭男┗顒?dòng)?應(yīng)該建立哪些類型的模型?

      面向?qū)ο蠓治鯫OA模型的過(guò)程包括理解用例模型、識(shí)別分析類、定義交互行為、建立分析類圖、評(píng)審分析模型5個(gè)活動(dòng)組成。

      目標(biāo)是建立一個(gè)符合問(wèn)題域、滿足用戶需求的OOA模型。

      2.什么是實(shí)體類、邊界類和控制類?為什么將分析類劃分成這3種類型?

      實(shí)體類:用于描述必須存儲(chǔ)的信息,同時(shí)描述相關(guān)的行為。實(shí)體類代表擬建系統(tǒng)中的核心信息。在RUP的有關(guān)文檔中對(duì)實(shí)體類的解釋為:“實(shí)體類是用于對(duì)必須存儲(chǔ)的信息和相關(guān)行為建模的類。邊界類:在系統(tǒng)與外界之間,為它們交換各種信息與事件。邊界類處理軟件系統(tǒng)的輸入和輸出。在RUP的有關(guān)文檔中對(duì)邊界類的解釋為:邊界類是一種用于對(duì)系統(tǒng)外部環(huán)境與其內(nèi)部運(yùn)作之間的交互進(jìn)行建模的類。

      控制類:與業(yè)務(wù)過(guò)程相關(guān),它們控制整個(gè)業(yè)務(wù)的流程和執(zhí)行次序。在RUP的有關(guān)文檔中對(duì)控制類的解釋為:控制類用于對(duì)一個(gè)或幾個(gè)用例所持有的控制行為進(jìn)行建模。

      控制類對(duì)象可以和邊界對(duì)象交互,也可以和實(shí)體對(duì)象交互,但不能和用例的參與者直接進(jìn)行交互。

      第八章

      1.什么是軟件設(shè)計(jì)?它的目標(biāo)和任務(wù)是什么?

      <1>軟件設(shè)計(jì):在需求分析的基礎(chǔ)上通過(guò)抽象和分解將系統(tǒng)分解成模塊,確定系統(tǒng)功能的實(shí)現(xiàn)。即把軟件需求轉(zhuǎn)換為軟件包表示的過(guò)程。

      <2>目標(biāo):軟件設(shè)計(jì)的最終目標(biāo)是產(chǎn)生一個(gè)設(shè)計(jì)規(guī)約,該規(guī)約包括體系結(jié)構(gòu)、描述數(shù)據(jù)、接口和構(gòu)件的設(shè)計(jì)模型。

      軟件設(shè)計(jì)的任務(wù),就是把分析階段產(chǎn)生的軟件需求規(guī)格說(shuō)明轉(zhuǎn)換為用適當(dāng)手段表示的軟件設(shè)計(jì)文檔。

      2.完成良好的軟件設(shè)計(jì)應(yīng)遵循哪些原則?

      模塊化與模塊獨(dú)立性;抽象與逐步求精;信息隱藏。3.如何理解模塊獨(dú)立性?用什么指標(biāo)來(lái)衡量模塊獨(dú)立性?

      <1>模塊的獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡(jiǎn)單的。

      <2>一般采用兩個(gè)準(zhǔn)則度量模塊獨(dú)立性,即模塊的內(nèi)聚性和模塊間的耦合性 4.說(shuō)明軟件設(shè)計(jì)階段的任務(wù)和過(guò)程 軟件設(shè)計(jì)分兩步完成,即總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。第個(gè)階段是總體設(shè)計(jì),即概要設(shè)計(jì)或初步設(shè)計(jì)。這、階段主要確定實(shí)現(xiàn)目標(biāo)系統(tǒng)的總體思想和設(shè)計(jì)框架,確定程序由哪些模塊組成,以及模塊與模塊之間的關(guān)系,最后提出概要設(shè)計(jì)說(shuō)明書。第二個(gè)階段是詳細(xì)設(shè)計(jì),即過(guò)程設(shè)計(jì)或構(gòu)件級(jí)設(shè)計(jì),其任務(wù)是通過(guò)對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,確定各個(gè)軟件構(gòu)件的詳細(xì)數(shù)據(jù)結(jié)構(gòu)和算法,產(chǎn)生描述各個(gè)軟件構(gòu)件的詳細(xì)設(shè)計(jì)文檔。

      5.試說(shuō)明軟件體系結(jié)構(gòu)在軟件設(shè)計(jì)階段中的重要性。

      良好的體系結(jié)構(gòu)設(shè)計(jì)是決定軟件系統(tǒng)成功的重要因素。軟件體系結(jié)構(gòu)設(shè)計(jì)的好壞往往會(huì)成為一個(gè)系統(tǒng)設(shè)計(jì)成敗的關(guān)鍵。通常,軟件體系結(jié)構(gòu)涉及軟件的總體組織、全局控制、數(shù)據(jù)存取及子系統(tǒng)之間的通信協(xié)議等。

      6.簡(jiǎn)述面向?qū)ο笤O(shè)計(jì)階段要做的工作。

      OOD主要包括三個(gè)方面的工作:系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)、用例實(shí)現(xiàn)方案設(shè)計(jì)和用戶界面設(shè)計(jì)。

      第十一章

      1.簡(jiǎn)述程序設(shè)計(jì)語(yǔ)言的基本特征及分類。

      基本特征包括心理特性,工程特性和技術(shù)特性三個(gè)方面。語(yǔ)言的的—心理特性對(duì)人機(jī)通信的質(zhì)量有主要的影響;語(yǔ)言的工程特性對(duì)軟件開發(fā)成功與否有重要的影響,此外語(yǔ)言的技術(shù)特性也會(huì)影響軟件設(shè)計(jì)的質(zhì)量

      ?按程序設(shè)計(jì)語(yǔ)言的歷史發(fā)展過(guò)程,計(jì)算機(jī)語(yǔ)言可分為機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)程序設(shè)計(jì)語(yǔ)言。

      ?按與機(jī)器的依賴程度,可分為低級(jí)、中級(jí)和高級(jí)語(yǔ)言。

      ?按應(yīng)用范圍,可分為通用語(yǔ)言與專用語(yǔ)言兩大類,通用語(yǔ)言義可細(xì)分為系統(tǒng)程序設(shè)計(jì)語(yǔ)言、科學(xué)計(jì)算語(yǔ)言、事務(wù)處理語(yǔ)言和實(shí)時(shí)控制語(yǔ)言等。

      ?按程序的設(shè)計(jì)方法,可分為命令性語(yǔ)言和作用性語(yǔ)言。

      ?按語(yǔ)言的成分,可以分成順序語(yǔ)言、并行語(yǔ)言和實(shí)時(shí)語(yǔ)言等。

      ?按語(yǔ)言的組成方法,可以分成匯集式語(yǔ)言和可擴(kuò)充語(yǔ)言。2.為了具有良好的程序設(shè)計(jì)風(fēng)格,應(yīng)該注意哪些方面的問(wèn)題?

      要形成良好的程序設(shè)計(jì)風(fēng)格,應(yīng)從源程序文檔化、數(shù)據(jù)說(shuō)明、語(yǔ)句構(gòu)造、輸入輸出和追求效率幾個(gè)方面加以注意。

      3.什么是軟件測(cè)試?軟件I則試的原則有哪些?

      軟件測(cè)試是按照特定的規(guī)則,發(fā)現(xiàn)缺陷而執(zhí)行程序的過(guò)程。

      一個(gè)好的測(cè)試用例是指盡可能找到迄今為止尚未發(fā)現(xiàn)缺陷的用例。一個(gè)成功的測(cè)試是指揭示了迄今為止尚未發(fā)現(xiàn)缺陷的測(cè)試。軟件測(cè)試的原則:

      (l)所有的測(cè)試都應(yīng)該能追溯到用戶需求。

      (Z)應(yīng)該在測(cè)試之前就制定出測(cè)試計(jì)劃。

      (3)Pareto原理可應(yīng)用于軟件測(cè)試。

      (4)測(cè)試應(yīng)從“小規(guī)?!遍_始,逐步轉(zhuǎn)向“大規(guī)?!?/p>

      (S)窮舉測(cè)試是不可能的。

      (6)既要做通過(guò)性測(cè)試,又要做失效性測(cè)試。

      (D為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作。

      第十四章

      1.為什么說(shuō)軟件維護(hù)是不可避免的?

      因?yàn)檐浖拈_發(fā)過(guò)程中,一般很難檢測(cè)到所有的錯(cuò)誤,其次軟件在應(yīng)用過(guò)程中需要隨用戶新的要求或運(yùn)行環(huán)境的變化而進(jìn)行軟件的修改或糾正軟件開發(fā)過(guò)程未發(fā)現(xiàn)的錯(cuò)誤,增強(qiáng)、改進(jìn)和完善軟件的功能和性能,以適應(yīng)軟件的發(fā)展,延長(zhǎng)軟件的壽命,軟件的維護(hù)是不可避免的。2.什么是軟件再工程?軟件再工程的主要活動(dòng)有哪些?

      指在逆向工程所獲信息的基礎(chǔ)上修改重構(gòu)已有的系統(tǒng),產(chǎn)生的―個(gè)新版本,或者說(shuō)利用這些信息修改或重構(gòu)軟件系統(tǒng)的工作。

      它定義了6為活動(dòng)r即庫(kù)存目錄分析、文檔重構(gòu)、逆向工程、代碼重構(gòu)、數(shù)據(jù)重構(gòu)、正向工程。3.軟件調(diào)試與軟件測(cè)試有什么區(qū)別?

      1、目的不同

      軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,至于找出錯(cuò)誤的原因和錯(cuò)誤發(fā)生的地方不是軟件測(cè)試的任務(wù),而是調(diào)試的任務(wù)。調(diào)試的目的是為了證明程序的正確,因此它必須不斷地?cái)D除錯(cuò)誤.它們的出發(fā)點(diǎn)不一樣“前者是挑錯(cuò),是一種挑剔過(guò)程,屬于質(zhì)盤保證活動(dòng)。后者是排錯(cuò),是-種排除過(guò)程,是編碼活動(dòng)的部分?

      2、任務(wù)不同

      既然軟件測(cè)試屬于質(zhì)量保證活動(dòng),因此它貫穿十整個(gè)計(jì)發(fā)過(guò)程.從需求分析開始,就要制訂軟件測(cè)試計(jì)劃,軟件設(shè)計(jì)時(shí)要設(shè)計(jì)系統(tǒng)軟件測(cè)試、集成側(cè)試用例,編碼階段要設(shè)計(jì)單元軟件測(cè)試用例并進(jìn)行單元軟件測(cè)試,軟件測(cè)試階段要進(jìn)行集成軟件測(cè)試、系統(tǒng)軟件測(cè)試等,直到產(chǎn)品交付。只要有修改就有軟件測(cè)試,產(chǎn)品交付后同樣。它是比較有規(guī)律的活動(dòng),有系統(tǒng)的方法、原則作指導(dǎo)。

      而調(diào)試是編碼活動(dòng)的部分,因此有編碼就有調(diào)試它的任務(wù)主要就是排錯(cuò)。調(diào)試的方法經(jīng)常與使用的開發(fā)工具有關(guān),例如解釋型的開發(fā)工具可以交互式調(diào)試,編譯型開發(fā)工具就很難較好地查錯(cuò)。當(dāng)然它有些啟發(fā)式的方法,它是.種比較依賴開發(fā)人員經(jīng)驗(yàn)的活動(dòng)。

      3、指導(dǎo)原則和方法不同

      軟件側(cè)試是種有規(guī)律的活動(dòng),有一系列軟件軟件測(cè)試的原則.其中主要是制U側(cè)試計(jì)劃,然后嚴(yán)格執(zhí)行。其次是種挑剔性行為,因此它不但要側(cè)試軟件應(yīng)該做的,還需要側(cè)試軟件個(gè)應(yīng)該做的事情。調(diào)試所遵循的規(guī)律主要是些啟發(fā)式規(guī)則,是”個(gè)推理過(guò)程。例如使用歸納法、演繹法、回溯法等。

      軟件測(cè)試的輸出是預(yù)知的,其軟件測(cè)試用例必須包括預(yù)期的結(jié)果,而調(diào)試的輸出大多是不可預(yù)見(jiàn)的,需要調(diào)試者去解釋、去發(fā)現(xiàn)產(chǎn)生的原因。

      4、操作者

      因?yàn)樾睦頎顟B(tài)是軟件測(cè)試程序的障礙,所以執(zhí)行軟件測(cè)試的人一般不是開發(fā)人員,以使軟件測(cè)試更客觀、更有效,而調(diào)試人員一般都是開發(fā)人員?

      5、操作環(huán)境、配置、工具不同

      調(diào)試在開發(fā)的編碼環(huán)境下進(jìn)行。如果編碼使用解釋型語(yǔ)言,則可以進(jìn)行人機(jī)交互式調(diào)試,設(shè)里斷點(diǎn)、單步調(diào)試等。如果編碼使用編譯型語(yǔ)言,也可以設(shè)置斷點(diǎn)、顯示調(diào)試變量值等。而軟件測(cè)試是在軟件測(cè)試環(huán)境下進(jìn)行,直接運(yùn)行開發(fā)完成的程序,可能不再需要一些開發(fā)時(shí)的驅(qū)動(dòng)程序、動(dòng)態(tài)鏈接庫(kù)等.使用不同的工具,環(huán)境配置也不同。

      簡(jiǎn)答題,1.什么是軟件工程?請(qǐng)分析軟件工程的目標(biāo)是什么?

      答案:軟件工程是:1將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的升發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是說(shuō)將工程化應(yīng)用于軟件開發(fā)和管理之中;2對(duì)1中所選方法的研究”

      軟件工程旨在開發(fā)滿足用戶需要、及時(shí)交付、不超過(guò)預(yù)算和無(wú)故障的軟件,其主要目標(biāo)如下: a)實(shí)現(xiàn)預(yù)期的軟件功能,達(dá)到較好的軟件性能,滿足用戶的需求。

      b)增強(qiáng)軟件過(guò)程的可見(jiàn)性和可控性,保證軟件的質(zhì)量。

      c)提高所開發(fā)軟件的可維護(hù)性,降低維護(hù)費(fèi)用。

      d)提高軟件開發(fā)生產(chǎn)率,及時(shí)交付使用。

      e)合理預(yù)算開發(fā)成本,付出較低的開發(fā)費(fèi)用。

      3.根據(jù)相關(guān)的法律,對(duì)于侵犯軟件著作權(quán)的行為,根據(jù)情節(jié)應(yīng)當(dāng)給予什么處罰?

      對(duì)于侵犯軟件著作權(quán)的行為,要根據(jù)情況承擔(dān)停止侵害、消除影響、賠禮道歉、賠償損失等民事責(zé)任;損害社會(huì)公共利益的,由著作權(quán)行政管理部門責(zé)令停止侵權(quán)行為,沒(méi)收違法所得,沒(méi)收、銷毀侵權(quán)復(fù)制品,并處罰款;情節(jié)嚴(yán)重的,著作權(quán)行政管理部門可以沒(méi)收用子制作侵權(quán)復(fù)制品的材料、工具、設(shè)備等;觸犯刑律的,依法追究刑事責(zé)任。

      4根據(jù)你的理解,列舉出職業(yè)化軟件工程師要注意的三個(gè)主要問(wèn)題,請(qǐng)給出理由。沒(méi)有唯一答案。

      1)不遵守標(biāo)準(zhǔn)和規(guī)范:職業(yè)化的重要特征是遵守行業(yè)標(biāo)準(zhǔn),不能肆意按照自己的想象來(lái)發(fā)揮。自從人們認(rèn)識(shí)到軟件危機(jī)以來(lái),總結(jié)軟件開發(fā)的失敗教訓(xùn)和成功經(jīng)驗(yàn),并把它們總結(jié)成為最佳實(shí)踐,進(jìn)而形成標(biāo)準(zhǔn),要充分利用這些最佳實(shí)踐和標(biāo)準(zhǔn)來(lái)指導(dǎo)軟件過(guò)程。任何閉門造車、想當(dāng)然的行為都是不被提倡的,注定要走彎路。

      2)對(duì)待計(jì)劃不嚴(yán)肅:軟件工程強(qiáng)調(diào)計(jì)劃性,計(jì)劃的內(nèi)容包括;設(shè)備資源、進(jìn)度安排、人力資源、任務(wù)分配等等。在項(xiàng)目的進(jìn)行中要跟蹤計(jì)劃執(zhí)行情況,記錄計(jì)劃執(zhí)行過(guò)程中的偏差,對(duì)任何變更都要經(jīng)過(guò)評(píng)審和批準(zhǔn)才能付諸行動(dòng)。

      3)不主動(dòng)與人溝通:軟件不可見(jiàn)的特性,需要軟件工程師進(jìn)行大量書面的、口頭的或面對(duì)面的溝通,溝通的目的是為了使相關(guān)的人員了解項(xiàng)目的進(jìn)展、遇到的問(wèn)題、應(yīng)用的技術(shù)、采用的方法。5.軟件工程為什么要強(qiáng)調(diào)規(guī)范化和文檔化?.軟件工程強(qiáng)調(diào)規(guī)范化和文檔化。規(guī)范化的目的是使眾多的開發(fā)者遵守相同的規(guī)范,使軟件生產(chǎn)擺脫個(gè)人生產(chǎn)方式,進(jìn)入標(biāo)準(zhǔn)化、工程化的生產(chǎn)方式。文檔化是將軟件的設(shè)計(jì)思想、設(shè)計(jì)過(guò)程和實(shí)現(xiàn)過(guò)程完整地記錄下來(lái),以便于后人的使用和維護(hù),在開發(fā)過(guò)程中各類相關(guān)人員借助于文檔進(jìn)行交流和溝通。另外,在開發(fā)過(guò)程中產(chǎn)生的各類文檔使得軟件的生產(chǎn)過(guò)程由不可見(jiàn)變?yōu)榭梢?jiàn),便于管理

      者對(duì)軟件生產(chǎn)進(jìn)度和開發(fā)過(guò)程進(jìn)行管理。在用戶最終驗(yàn)收時(shí)可以通過(guò)對(duì)提交的文檔進(jìn)行技術(shù)審查和管理審查,保證軟件的質(zhì)量。

      6.請(qǐng)簡(jiǎn)單說(shuō)明結(jié)構(gòu)化分析的主要步驟。

      根據(jù)用戶的需求畫出初始的數(shù)據(jù)流程圖,寫出數(shù)據(jù)字典和初始的加工處理說(shuō)明(lPO圖),實(shí)體關(guān)系圖。以初始數(shù)據(jù)流程圖為基礎(chǔ),從數(shù)據(jù)流程圖的輸出端開始回溯。在對(duì)數(shù)據(jù)流程圖進(jìn)行回溯的過(guò)程中可能會(huì)發(fā)現(xiàn)丟失的處理和數(shù)據(jù),應(yīng)將數(shù)據(jù)流程圖補(bǔ)充完善。對(duì)軟件性能指標(biāo)、接口定義、設(shè)計(jì)和實(shí)現(xiàn)的約束條件等逐一進(jìn)行分析。系統(tǒng)分析人員與用戶起對(duì)需求分析的結(jié)果進(jìn)行復(fù)查。根據(jù)細(xì)化的需求修訂開發(fā)計(jì)劃。編寫需求規(guī)格說(shuō)明書和初始的用戶手冊(cè),測(cè)試人員開始編寫功能測(cè)試用的測(cè)試數(shù)據(jù)。

      7.設(shè)計(jì)類的屬性時(shí)必須要定義是哪兩項(xiàng)?

      設(shè)計(jì)類的屬性時(shí)必須要定義的內(nèi)容:

      1)屬性的類型:設(shè)計(jì)屬性時(shí)必須要根據(jù)開發(fā)語(yǔ)言確定每個(gè)屬性的數(shù)據(jù)類型?如果數(shù)據(jù)類型不夠,設(shè)計(jì)人員可以利用已有的數(shù)據(jù)類型定義新的數(shù)據(jù)類型。

      2)屬性的可見(jiàn)性。在設(shè)計(jì)屬性時(shí)要確定公有屬性、私有屬性、受保護(hù)屬性。活動(dòng)圖反映系統(tǒng)中從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的流程,強(qiáng)調(diào)對(duì)象間的控制流程?;顒?dòng)圖特別適合描述工作流和并行處理過(guò)程。具體地說(shuō)活動(dòng)圖可以描述一個(gè)操作過(guò)程中需要完成的活動(dòng);描述一個(gè)對(duì)象內(nèi)部的工作;描述如何執(zhí)行組相關(guān)的動(dòng)作,以及這些動(dòng)作如何影響它們周圍的對(duì)象;說(shuō)明個(gè)業(yè)務(wù)活動(dòng)中角色、工作流、組織和對(duì)象是如何工作的。

      順序圖用于描述一組交互對(duì)象間的交互方式,它表示完成某項(xiàng)行為的對(duì)象和這些對(duì)象之間傳遞消息的時(shí)間順序。

      8面向?qū)ο蟮姆治鐾ǔR⑷齻€(gè)模型,請(qǐng)問(wèn)三個(gè)模型的作用?

      a)功能模型:表達(dá)系統(tǒng)的詳細(xì)需求,為軟件的進(jìn)一步分析和設(shè)計(jì)打下基礎(chǔ)。在面向?qū)?/p>

      象方法中,由用例圖和場(chǎng)景描述組成。

      b)對(duì)象模型:表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)“數(shù)據(jù)”性質(zhì)。描述現(xiàn)實(shí)世界中實(shí)體的對(duì)象以及它們之間的關(guān)系,表示目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。在面向?qū)ο蠓椒ㄖ?,類圖是構(gòu)件對(duì)象模型的核心上具。

      c)動(dòng)態(tài)模型:描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)和對(duì)象之間的交互,表示瞬時(shí)的、行為化的系統(tǒng)的“控制”特性。面向?qū)ο蠓椒ㄖ?,常用狀態(tài)圖、順序圖、合作圖、活動(dòng)圖構(gòu)件系統(tǒng)的動(dòng)態(tài)模型。

      9.面向?qū)ο蟮脑O(shè)計(jì)活動(dòng)中,有構(gòu)架師、用例工程師和構(gòu)件師參加,他們每個(gè)角色的職責(zé)是什么?

      構(gòu)架設(shè)計(jì)的目的是要勾畫出系統(tǒng)的總體結(jié)構(gòu),這項(xiàng)工作由經(jīng)驗(yàn)豐富的構(gòu)架設(shè)計(jì)師主持完成。該活動(dòng)以用例模型、分析模型為輸入,生成物理構(gòu)架、子系統(tǒng)及其接口、概要的設(shè)計(jì)類(即設(shè)計(jì)階段定義的類)。

      根據(jù)分析階段產(chǎn)生的高層類圖和交互圖,由用例設(shè)計(jì)師研究已有的類,將它們分配到相應(yīng)的用例中。檢查每個(gè)用例的功能,這些功能依靠當(dāng)前的類能否實(shí)現(xiàn),同時(shí)檢查每個(gè)用例的.特殊需求是否有合適的類來(lái)實(shí)現(xiàn)。細(xì)化每個(gè)用例的類圖,描述實(shí)現(xiàn)用例的類及其類之間的相互關(guān)系,其中的通用類和關(guān)鍵類可用粗線框區(qū)分,這些類將作為項(xiàng)目經(jīng)理檢查項(xiàng)目時(shí)的重點(diǎn)。

      經(jīng)過(guò)前面兩個(gè)活動(dòng),構(gòu)架設(shè)計(jì)師已經(jīng)將系統(tǒng)的構(gòu)架建立起來(lái),用例設(shè)計(jì)師按照用例的功能將每個(gè)類分配給相應(yīng)的用例?,F(xiàn)在要由構(gòu)件工程師詳細(xì)設(shè)計(jì)每個(gè)類的屬性、方法和關(guān)系。10.提高程序可讀性有哪些招數(shù)?對(duì)你來(lái)講比較靈驗(yàn)的是哪些?

      a)源程序文件頭說(shuō)明,函數(shù)應(yīng)有函數(shù)頭說(shuō)明,內(nèi)容包括:程序標(biāo)題;有關(guān)該模塊功能和目的說(shuō)明;主要算法說(shuō)明;接O說(shuō)明,包括調(diào)用形式、參數(shù)描述、子程序清單、有關(guān)數(shù)據(jù)的說(shuō)明。

      b)主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο?的定義能夠反映其內(nèi)在含義。c)變量定義最規(guī)范化,說(shuō)明的先后次序固定。

      d)處理過(guò)程的每個(gè)階段和典型算法前都有相關(guān)注釋說(shuō)明。

      三、簡(jiǎn)答題:

      2、什么是軟件工程?包括哪些內(nèi)容?

      答: 軟件工程:用科學(xué)知識(shí)和技術(shù)原理來(lái)定義、開發(fā)、維護(hù)軟件的一門學(xué)科。軟件工程的內(nèi)容:

      1)軟件開發(fā)技術(shù):軟件開發(fā)方法、軟件開發(fā)過(guò)程、軟件開發(fā)工具和環(huán)境。2)軟件開發(fā)管理:軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué)。

      軟件工程的目標(biāo):是成功的建造一個(gè)大型軟件系統(tǒng),所謂成功是要達(dá)到以下幾個(gè)目標(biāo):①付出較 低的開發(fā)成本;②面到要求的軟件功能;③取得較好的軟件性能;④開發(fā)的軟件易于 移植;⑤需要較低的維護(hù)費(fèi)用;⑥能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;⑦開發(fā)的軟 件可靠性高;軟件工程過(guò)程:生產(chǎn)一個(gè)最終能滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟。軟件工 程過(guò)程主要包括開發(fā)過(guò)程、運(yùn)作過(guò)程、維護(hù)過(guò)程。它們覆蓋了需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及維護(hù)等活動(dòng)。

      軟件工程的框架可概括為:①目標(biāo)、②過(guò)程和③原則。

      軟件工程的原則:是指圍繞工程設(shè)計(jì)、工程支持以及工程管理在軟件開發(fā)過(guò)程中必須遵循的原則?;驹恚孩庞梅蛛A段的生命周期計(jì)劃嚴(yán)格管理;⑵堅(jiān)持進(jìn)行階段評(píng)審;⑶實(shí)行嚴(yán)格的產(chǎn)品控制; ⑷采用現(xiàn)代程序設(shè)計(jì)技術(shù);⑸結(jié)果應(yīng)能清楚地審查;⑹開發(fā)小組的人員應(yīng)該少而精; ⑺承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性;(工程化的方法開發(fā)軟件基本原理)

      軟件工程方法學(xué):軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工 程學(xué)科。

      軟件工程方法學(xué)包括:①傳統(tǒng)方法學(xué)(結(jié)構(gòu)化范型)和②面向?qū)ο蠓椒▽W(xué)。

      面向?qū)ο蟮囊c(diǎn): ①把對(duì)象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。②把所 有對(duì)象都劃分成類。③按子類與父類的關(guān)系,把類組成一個(gè)層次結(jié)構(gòu)。④對(duì)象彼此之 間僅能通過(guò)傳遞消息互相聯(lián)系。

      軟件工程方法學(xué)三要素是:①方法;②工具;③過(guò)程。

      3、軟件生命周期由哪三個(gè)時(shí)期組成,又劃分為哪8個(gè)階段?

      答:軟件生存周期:一個(gè)軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期。軟件生命周期是

      由:⑴軟件定義時(shí)期;⑵軟件開發(fā)時(shí)期;⑶軟件維護(hù)時(shí)期三個(gè)時(shí)期組成的。又劃分為:①問(wèn)題定義、②可行性研究、③需求分析、④總體設(shè)計(jì)、⑤詳細(xì)設(shè)計(jì)、⑥編碼和單元測(cè)試、⑦綜合測(cè)試、⑧維護(hù)八個(gè)階段。

      1、問(wèn)題的定義及規(guī)劃 此階段是軟件開發(fā)方與需求方共同討論,主要確定軟件的開發(fā)目標(biāo)及其可行性。

      2、需求分析 在確定軟件開發(fā)可行的情況下,對(duì)軟件需要實(shí)現(xiàn)的各個(gè)功能進(jìn)行詳細(xì)分析。需求分析階段是一個(gè)很重要的階段,這一階段做得好,將為整個(gè)軟件開發(fā)項(xiàng)目的成功打下良好的基礎(chǔ)。“唯一不變的是變化本身?!?,同樣需

      求也是在整個(gè)軟件開發(fā)過(guò)程中不斷變化和深入的,因此我們必須制定需求變更計(jì)劃來(lái)應(yīng)付這種變化,以保護(hù)整個(gè)項(xiàng)目的順利進(jìn)行。

      3、軟件設(shè)計(jì) 此階段主要根據(jù)需求分析的結(jié)果,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)等等。軟件設(shè)計(jì)一般分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。好的軟件設(shè)計(jì)將為軟件程序編寫打下良好的基礎(chǔ)。

      4、程序編碼 此階段是將軟件設(shè)計(jì)的結(jié)果轉(zhuǎn)換成計(jì)算機(jī)可運(yùn)行的程序代碼。在程序編碼中必須要制定統(tǒng)一,符合標(biāo)準(zhǔn)的編寫規(guī)范。以保證程序的可讀性,易維護(hù)性,提高程序的運(yùn)行效率。

      5、軟件測(cè)試 在軟件設(shè)計(jì)完成后要經(jīng)過(guò)嚴(yán)密的測(cè)試,以發(fā)現(xiàn)軟件在整個(gè)設(shè)計(jì)過(guò)程中存在的問(wèn)題并加以糾正。整個(gè)測(cè)試過(guò)程分單元測(cè)試、組裝測(cè)試以及系統(tǒng)測(cè)試三個(gè)階段進(jìn)行。測(cè)試的方法主要有白盒測(cè)試和黑盒測(cè)試兩種。在測(cè)試過(guò)程中需要建立詳細(xì)的測(cè)試計(jì)劃并嚴(yán)格按照測(cè)試計(jì)劃進(jìn)行測(cè)試,以減少測(cè)試的隨意性。

      6、運(yùn)行維護(hù) 軟件維護(hù)是軟件生命周期中持續(xù)時(shí)間最長(zhǎng)的階段。在軟件開發(fā)完成并投入使用后,由于多方面的原因,軟件不能繼續(xù)適應(yīng)用戶的要求。要延續(xù)軟件的使用壽命,就必須對(duì)軟件進(jìn)行維護(hù)。軟件的維護(hù)包括糾錯(cuò)性維護(hù)和改進(jìn)性維護(hù)兩個(gè)方面。

      4、什么是白盒測(cè)試法?什么是黑盒測(cè)試法?

      答:白盒測(cè)試:所謂白盒測(cè)試就是在知道產(chǎn)品內(nèi)部工作過(guò)程或程序內(nèi)部結(jié)構(gòu)和處理過(guò)程的前提下,檢

      驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行或按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按照預(yù)定要求正確工作的測(cè)試方法.因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯測(cè)試。

      從覆蓋源程序語(yǔ)句的詳盡程度分析,大致有以下一些不同的覆蓋標(biāo)準(zhǔn):⑴語(yǔ)句覆蓋;⑵判定覆蓋;⑶條件覆蓋;⑷判定/條件覆蓋;⑸條件組合覆蓋;⑹點(diǎn)覆蓋;⑺邊覆蓋;⑻路徑覆蓋。黑盒測(cè)試:所謂黑盒測(cè)試是指在完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程的前提下,在程序接口進(jìn)行的測(cè)試,它只檢查程序功能是否能按照規(guī)格說(shuō)明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮茌斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息的完整性.因此,又稱為功能測(cè)試。特點(diǎn):等價(jià)類劃分、邊界值分析、因果圖、錯(cuò)誤推測(cè)。

      優(yōu)點(diǎn) 1.基本上不用人管著,如果程序停止運(yùn)行了一般就是被測(cè)試程序crash了 2.設(shè)計(jì)完測(cè)試?yán)?,下?lái)的工作就是爽了,當(dāng)然更苦悶的是確定crash原因 缺點(diǎn) 1.結(jié)果取決于測(cè)試?yán)脑O(shè)計(jì),測(cè)試?yán)脑O(shè)計(jì)部分來(lái)勢(shì)來(lái)源于經(jīng)驗(yàn),OUSPG的東西很值得借鑒

      2.沒(méi)有狀態(tài)轉(zhuǎn)換的概念,目前一些成功的例子基本上都是針對(duì)PDU來(lái)做的,還做不到針對(duì)被測(cè)試程序的狀態(tài)轉(zhuǎn)換來(lái)作

      3.就沒(méi)有狀態(tài)概念的測(cè)試來(lái)說(shuō),尋找和確定造成程序crash的測(cè)試?yán)莻€(gè)麻煩事情,必須把周圍可能的測(cè)試?yán)龁为?dú)確認(rèn)一遍。而就有狀態(tài)的測(cè)試來(lái)說(shuō),就更麻煩了,尤其不

      是一個(gè)單獨(dú)的testcase造成的問(wèn)題。這些在堆的問(wèn)題中表現(xiàn)的更為突出。

      5、什么是集成測(cè)試?非漸增式和漸增式有什么區(qū)別?漸增式如何組裝模塊?

      答:將模塊組合起來(lái)成為一個(gè)完整的系統(tǒng)對(duì)其進(jìn)行測(cè)試。非漸增式是將模塊先進(jìn)行單元測(cè)試然后組裝

      在一起進(jìn)行測(cè)試。漸增式是逐個(gè)將未測(cè)試的模塊組裝到已經(jīng)測(cè)試過(guò)的模塊上去進(jìn)行集成測(cè)試,每加入一個(gè)就測(cè)試一次。非漸增式需要樁模塊和驅(qū)動(dòng)模塊、非漸增式開始可以并行測(cè)試、漸增式可以及時(shí)的發(fā)現(xiàn)接口錯(cuò)誤,非漸增式很難發(fā)現(xiàn)接口發(fā)現(xiàn)錯(cuò)誤、漸增式開始不能并行測(cè)試、漸增式測(cè)試比較徹底。漸增式組裝模塊有自頂向下和自底向上兩種組裝方式。

      6、什么是確認(rèn)測(cè)試?該階段有那些工作?

      答:調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。簡(jiǎn)單調(diào)試、演繹調(diào)試、遞歸調(diào)試、回溯調(diào)試。

      7、面向?qū)ο蠓椒▽W(xué)與傳統(tǒng)方法學(xué)有何區(qū)別?

      答:面向?qū)ο蠓椒▽W(xué)注重的是軟件的重用性,而傳統(tǒng)的方法學(xué)則在這一問(wèn)題解決上不理想。面向?qū)ο?/p>

      方法學(xué)和傳統(tǒng)的方法學(xué)在問(wèn)題分析上的切入點(diǎn)不同。面向?qū)ο罄锩妫到y(tǒng)是長(zhǎng)出來(lái)的,傳統(tǒng)的方法學(xué)里面,系統(tǒng)是放進(jìn)去的。傳統(tǒng)方法:⑴結(jié)構(gòu)化開發(fā)方法,注重的是系統(tǒng)功能,自頂向下,從大到小的功能分解,從DFD到MSD,往往系統(tǒng)需求變化最大就是功能,一段較長(zhǎng)的時(shí)間內(nèi),商業(yè)的流程可能已經(jīng)發(fā)生了很大的變化,這樣基于功能和過(guò)程的方法顯然難以維護(hù)的,代碼重用率可想而知,而商業(yè)過(guò)程中的數(shù)據(jù)可能變化不會(huì)很大,⑵信息工程法,注重的是數(shù)據(jù),事件流->信息流,(資金流,物流)->數(shù)據(jù)流,數(shù)據(jù)的輸入和轉(zhuǎn)化輸出,數(shù)據(jù)流程圖,狀態(tài)轉(zhuǎn)化圖,事件順序圖,過(guò)程依賴圖,兩者都是由事件驅(qū)動(dòng).面向的是問(wèn)題,是為了要解決某一個(gè)具體問(wèn)題,其觀察事物的方法不是本體客體本身,而是對(duì)本體客體相互作用過(guò)程抽象,轉(zhuǎn)化成邏輯模型。面向?qū)ο蠓椒▽W(xué):其切入點(diǎn)是客觀世界的主體和客體,通過(guò)封裝實(shí)現(xiàn)了信息交流的安全,抽象和繼承使得事物的一完整表述和容易修改新的變化,聚合,關(guān)聯(lián)反映事物間的相互作用和關(guān)系,通過(guò)關(guān)聯(lián)類管理,這樣把事物和事物間的關(guān)系分開.減少了復(fù)雜度,便于維護(hù),大大提高了代碼重用率。

      8、軟件開發(fā)模型有幾種?各有什么特點(diǎn)? 軟件生存周期模型:是描述軟件開發(fā)過(guò)程中各種活動(dòng)如何執(zhí)行的模型。(模型:是為了理解事物而 對(duì)事物做出一種抽象,它忽略不必要的細(xì)節(jié),它也是事物的一種抽象形式、一個(gè)規(guī)劃、一個(gè)程式。)主要模型:①瀑布模型;②增量模型;③螺旋模型;④噴泉模型;⑤變換模型;⑥基于知識(shí)的模 型等

      瀑布模型:①它提供了一個(gè)摸板,這個(gè)摸板使分析、設(shè)計(jì)、編碼、測(cè)試和支持的方法可以在該摸 板下有一個(gè)共同的指導(dǎo);②雖然有不少缺陷但比在軟件開發(fā)中隨意的狀態(tài)要好得多。快速原型模型:①開發(fā)速度快,質(zhì)量有保證。②對(duì)信息系統(tǒng)特別有效。

      增量模型:①人員分配靈活,剛開始不用投入大量人力資源,當(dāng)核心產(chǎn)品很受歡迎時(shí),可增加人

      力實(shí)現(xiàn)下一個(gè)增量。②當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑,這樣就可以先發(fā)布部分功能給客戶,對(duì)客戶起到鎮(zhèn)靜劑的作用。③具有一定的市場(chǎng)。

      螺旋模型:①對(duì)于大型系統(tǒng)及軟件的開發(fā),這種模型是一個(gè)很好的方法。開發(fā)者和客戶能夠較好

      地對(duì)待和理解每一個(gè)演化級(jí)別上的風(fēng)險(xiǎn)。②對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo);減少了過(guò)多測(cè)試或測(cè)試不足所帶來(lái)的風(fēng)險(xiǎn)。

      9、可行性研究:⑴系統(tǒng)流程圖;⑵數(shù)據(jù)流程圖;

      系統(tǒng)流程圖:系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具?;舅枷胧怯脠D形符號(hào)以黑盒子形

      式描繪組成系統(tǒng)的每個(gè)部件。其表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過(guò)程。

      數(shù)據(jù)流程圖:簡(jiǎn)稱DFD,是描述數(shù)據(jù)處理過(guò)程的工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程,是一種功能模型。作用:它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過(guò)程,反映系統(tǒng)必須完成的邏輯功能?;痉?hào)有四種:→,箭頭,表示數(shù)據(jù)流;○,圓或橢圓,表示加工; =,雙杠,表示數(shù)據(jù)存儲(chǔ);□,方框,表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。

      可行性研究的任務(wù):(1)經(jīng)濟(jì)可行性。確定待開發(fā)系統(tǒng)是否值得投資開發(fā)。(2)技術(shù)可行性。對(duì)待

      開發(fā)的系統(tǒng)進(jìn)行功能、性能和限制條件的分析,確定在現(xiàn)有資源的條件下技術(shù)風(fēng)險(xiǎn)有多大,系統(tǒng)是否能實(shí)現(xiàn)。(3)法律可行性。確認(rèn)待開發(fā)系統(tǒng)可能會(huì)涉及的任何侵犯、妨礙、責(zé)任等問(wèn)題。(4)抉擇。對(duì)系統(tǒng)開發(fā)的不同方案進(jìn)行比較評(píng)估。

      10、什么是字據(jù)字典?其作用是什么?它有哪些條目?

      字據(jù)字典:簡(jiǎn)稱DD,就是用來(lái)定義數(shù)據(jù)流圖中的各個(gè)成分具體含義的,它以一種準(zhǔn)確的、無(wú)二義性 的說(shuō)明方式為系統(tǒng)的分析、設(shè)計(jì)及維護(hù)提供了有關(guān)元素的一致的定義和詳細(xì)的描述。

      作 用:⑴為系統(tǒng)的分析設(shè)計(jì)及維護(hù)提供了有關(guān)元素的一致的定義和詳細(xì)的描述.⑵為分析人員查找

      數(shù)據(jù)流圖中有關(guān)名字的詳細(xì)定義而服務(wù)的.⑶它和數(shù)據(jù)流圖共同構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說(shuō)明書的主要組成部分.條 目:數(shù)據(jù)流、數(shù)據(jù)項(xiàng)、數(shù)據(jù)存儲(chǔ)、基本加工。

      11、需求分析的任務(wù)是什么? 答: 需求分析是指:開發(fā)人員要準(zhǔn)確理解用戶的要求,進(jìn)行細(xì)致的調(diào)查分析,將用戶非形式的需求陳 述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的形式主義功能規(guī)約(需求規(guī)格說(shuō)明)的過(guò)程。需求分析的主要任務(wù):⑴正確地確定對(duì)系統(tǒng)綜合要求,充分理解和表達(dá)用戶的需求。⑵通過(guò)結(jié)構(gòu)分

      析的方法對(duì)系統(tǒng)進(jìn)行分解,以確定軟件系統(tǒng)的主要成分或軟件系統(tǒng)的構(gòu)成。⑶是對(duì)以上已進(jìn)行的兩項(xiàng)工作進(jìn)行描述,以形成需求文檔。⑷編寫用戶手冊(cè);⑸編寫驗(yàn)收計(jì)劃;⑹修正可行性研究階段所制訂的軟件項(xiàng)目開發(fā)計(jì)劃。

      12、結(jié)構(gòu)化分析方法:結(jié)構(gòu)化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止。

      主要工具:數(shù)據(jù)流圖、數(shù)據(jù)詞典、結(jié)構(gòu)化英語(yǔ)、判定表和判定樹。3種模型:①數(shù)據(jù)模型、②功能模型和③行為模型。

      驗(yàn)證軟件需求:⑴一致性;⑵完整性;⑶現(xiàn)實(shí)性;⑷有效性;

      結(jié)構(gòu)化分析方法步驟: ①了解當(dāng)前系統(tǒng)的工作流程,獲得當(dāng)前系統(tǒng)的物理模型。②抽象出當(dāng)前系 統(tǒng)的邏輯模型。③建立上標(biāo)系統(tǒng)的邏輯模型。④作進(jìn)一步補(bǔ)充和優(yōu)化。

      結(jié)構(gòu)化程序設(shè)計(jì)基本要點(diǎn):⑴采用自頂向下、逐步求精的程序設(shè)計(jì)方法;⑵使用三種基本程序控 制結(jié)構(gòu)構(gòu)造程序(①順序方式;②選擇方式;③循環(huán)方式;)。⑶主程序員組的組織形式。

      13、總體設(shè)計(jì)過(guò)程由兩個(gè)主要階段組成:①系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;②結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。

      模塊:軟件系統(tǒng)的層次結(jié)構(gòu)正是模塊化的具體體現(xiàn)。將整個(gè)軟件劃分成若干單獨(dú)命名和可編址的部分,稱之為模塊。模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集 成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。模塊是構(gòu)成程序的基本構(gòu)件。

      模塊化的根據(jù):把復(fù)雜的問(wèn)題分解成許多容易解決的小問(wèn)題,原來(lái)的問(wèn)題也就容易解決了。這就是模塊化的根據(jù)。

      14、衡量模塊獨(dú)立性的兩個(gè)標(biāo)準(zhǔn)是什么?它們各表示什么含義? 兩個(gè)定性的度量標(biāo)準(zhǔn):耦合與內(nèi)聚性。

      耦合:是模塊之間的相對(duì)獨(dú)立性(互相連接的緊密程度)的度量。模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其模塊獨(dú)立性就越弱。按耦合度從低到高依次有7種耦合方式:①非直接耦

      合(獨(dú)立運(yùn)行);②數(shù)據(jù)耦合(用參數(shù)表傳遞簡(jiǎn)單數(shù)據(jù));③標(biāo)記耦合(傳遞數(shù)據(jù)結(jié)構(gòu)或者一部分);④控制耦合(傳遞的信息包括控制模塊的信息);⑤外部耦合(模塊與軟件之外的環(huán)境有關(guān));⑥公共耦合(多個(gè)模塊引用同一全局的數(shù)據(jù)區(qū));⑦內(nèi)容耦合(訪問(wèn)內(nèi)部數(shù)據(jù),代碼重疊或者多個(gè)入口)。

      內(nèi)聚:是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量。一個(gè)模塊內(nèi)部各個(gè)元素

      之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高。按內(nèi)聚度從低到高依次有7種內(nèi)聚種類: ①偶然內(nèi)聚(模塊完成的多個(gè)任務(wù),任務(wù)之間的關(guān)系松散);②邏輯內(nèi)聚(模塊完成邏輯相關(guān)的一組任務(wù));③瞬時(shí)內(nèi)聚(模塊的所有任務(wù)必須在同一時(shí)間間隔內(nèi)執(zhí)行);④過(guò)程內(nèi)聚(模塊的處理元素相關(guān)而且按照特定的次序執(zhí)行);⑤通信內(nèi)聚(模塊的所有元素集中在一個(gè)數(shù)據(jù)結(jié)構(gòu)區(qū)域上);⑥順序內(nèi)聚(模塊的處理元素相關(guān),必須順序執(zhí)行);⑦功能內(nèi)聚(模塊完成單一的功能,各個(gè)部分協(xié)調(diào)工作,而且不可缺少)

      耦合和內(nèi)聚的關(guān)系:一般說(shuō)來(lái),在系統(tǒng)中各模塊的內(nèi)聚越大,則模塊間的耦合越小。但這種關(guān)系并不

      是絕對(duì)的。耦合小使得模塊間盡可能相對(duì)獨(dú)立,從而各模塊可以單獨(dú)開發(fā)和維護(hù)。內(nèi)聚大使得模塊的可理解性和維護(hù)性大大增強(qiáng)。因此,在模塊的分解中應(yīng)盡量減少模塊的耦合,力求增加模塊的內(nèi)聚。

      15、Jackson方法的步驟:(1)實(shí)體動(dòng)作分析:從問(wèn)題的描述中,提取軟件系統(tǒng)要產(chǎn)生和運(yùn)用的實(shí)體,以及

      現(xiàn)實(shí)世界作用于實(shí)體上的動(dòng)作。(2)實(shí)體結(jié)構(gòu)分析:把作用于實(shí)體的動(dòng)作或由實(shí)體執(zhí)行的動(dòng)作,按時(shí)間發(fā)生的先后次序排序,構(gòu)成進(jìn)程,并用一個(gè)層狀的Jackson結(jié)構(gòu)圖表示。(3)定義初始模型:把實(shí)體和動(dòng)作表示成一個(gè)進(jìn)程模型,定

      義模型與現(xiàn)實(shí)世界的聯(lián)系。(4)功能描述:說(shuō)明與已定義的動(dòng)作相對(duì)應(yīng)的功能,為已定義的動(dòng)作加入功能函數(shù)。(5)決定系統(tǒng)時(shí)間特性:對(duì)進(jìn)程加入時(shí)間因素,對(duì)進(jìn)程調(diào)度特性進(jìn)行評(píng)價(jià)和說(shuō)明。(6)實(shí)現(xiàn):設(shè)計(jì)組成系統(tǒng)的硬件和軟件,實(shí)現(xiàn)系統(tǒng)的原型。

      16、測(cè)試階段的信息流:這個(gè)階段的輸入信息有兩類:(1)軟件配置,包括需求說(shuō)明書、設(shè)計(jì)說(shuō)明書和源 程序清單等;

      (2)測(cè)試配置,包括測(cè)試計(jì)劃和測(cè)試方案。

      自頂向下集成:從主控制模塊開始,沿著程序的控制

      層次向下移動(dòng),逐漸把各個(gè)模塊結(jié)合起來(lái)。在把附屬于主控制模塊的那些模塊組裝到程序結(jié)構(gòu)中去時(shí),或者使用深度優(yōu)先的策略,或者使用寬度優(yōu)先的策略。

      深度優(yōu)先的結(jié)合方法先組裝在軟件結(jié)構(gòu)的一條主控制通路上的所有模塊。選擇一條主控制通路取決于應(yīng)用的特點(diǎn),并且有很大任意

      性。而寬度優(yōu)先的結(jié)合方法是沿軟件結(jié)構(gòu)水平地移動(dòng),把處于同一個(gè)控制層次上的所有模塊組裝起來(lái)。

      集成測(cè)試的策略:當(dāng)使用漸增方式把模塊結(jié)合到程序中去時(shí),有自頂向下和自底向上兩種集成策略。

      17、決定軟件可維護(hù)性的因素:⑴可理解性;⑵可測(cè)試性;⑶可修改性;⑷可移植性;⑸可重用性;

      軟件維護(hù):是指在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程.軟件維護(hù) 是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng)代價(jià)最大的一個(gè)階段。軟件的可維護(hù)性可以定義為:維護(hù)人員理解,改正和改動(dòng)軟件的難易程度。

      18、對(duì)象:是對(duì)現(xiàn)實(shí)世界實(shí)體的正確抽象,它是由描述內(nèi)部狀態(tài)表示靜態(tài)屬性的數(shù)據(jù),以及可以對(duì)這些數(shù) 據(jù)施加的操作,封裝在一起所構(gòu)成的統(tǒng)一體。對(duì)象之間通過(guò)傳遞消息互相聯(lián)系,以模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系。

      對(duì)象的特點(diǎn):①以數(shù)據(jù)為中心;②對(duì)象是主動(dòng)的;③實(shí)現(xiàn)了數(shù)據(jù)封裝;④本質(zhì)上具有并行性;⑤模塊 工程規(guī)模:此系統(tǒng)中應(yīng)包含接受模塊和信息處理與輸出模塊。可能的解決方案及其評(píng)價(jià) 從三方面研究每種解決方法的可行性:

      (1).技術(shù)可行性 使用現(xiàn)在的技術(shù)完全可以實(shí)現(xiàn)該系統(tǒng)

      (2).經(jīng)濟(jì)可行性 這個(gè)系統(tǒng)的開發(fā)成本不高,節(jié)省的經(jīng)濟(jì)資源以及經(jīng)濟(jì)消息能夠超過(guò)該系統(tǒng)的開發(fā)成本(3).操作可行性 該教學(xué)事務(wù)管理系統(tǒng)在校院的各個(gè)辦公室都可以實(shí)現(xiàn),操作人員為在校師生,所以不存在技術(shù)、能力問(wèn)題。推薦行動(dòng)方針 通過(guò)從技術(shù),經(jīng)濟(jì),可操作三方面的研究,分析的出結(jié)論,此系統(tǒng)是可行的。16.構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:

      · 實(shí)體型(Entity):用矩形表示,矩形框內(nèi)寫明實(shí)體名;比如學(xué)生張三豐、學(xué)生李尋歡都是實(shí)體。如果是弱實(shí)體的話,在矩形外面再套實(shí)線矩形。

      · 屬性(Attribute):用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái);比如學(xué)生的姓名、學(xué)號(hào)、性別、都是屬性。如果是多值屬性的話,再橢圓形外面再套實(shí)線橢圓。如果是派生屬性則用虛線橢圓表示。

      · 聯(lián)系(Relationship):用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。比如老師給學(xué)生授課存在授課關(guān)系,學(xué)生選課存在選課關(guān)系。如果是弱實(shí)體的聯(lián)系則在菱形外面再套菱形。(猜考畫圖,或25題)第一章 軟件工程介紹 ? 軟件的特性

      1. 軟件是設(shè)計(jì)開發(fā)的,而不是傳統(tǒng)意義上的生產(chǎn)制造的。2. 軟件不會(huì)“磨損”。3. 雖然整個(gè)工業(yè)向著基于構(gòu)件的構(gòu)造模式發(fā)展,然而大多數(shù)軟件扔是根據(jù)實(shí)際的顧客需

      求定制的。? 計(jì)算機(jī)軟件的七大分類:系統(tǒng)軟件、應(yīng)用軟件、工程/科學(xué)軟件、嵌入式軟件、產(chǎn)品線軟件、Web應(yīng)用軟件、人工智能軟件。?

      遺留系統(tǒng)發(fā)生系統(tǒng)演化的原因:1.軟件需要修改其適應(yīng)性,從而滿足新的計(jì)算環(huán)境或者技術(shù)的需求;2.軟件必須根據(jù)新的業(yè)務(wù)需求進(jìn)行升級(jí);3.軟件必須擴(kuò)展以具有與更多現(xiàn)代系統(tǒng)和數(shù)據(jù)庫(kù)的協(xié)作能力;4.軟件架構(gòu)必須進(jìn)行改建以適應(yīng)多樣化的網(wǎng)絡(luò)環(huán)境。? 軟件神話:管理者,用戶,從業(yè)者 ? 軟件的定義:程序、數(shù)據(jù)和文檔。?

      軟件工程的目的就是為開發(fā)高質(zhì)量的軟件產(chǎn)品提供一個(gè)工程框架。第二章 過(guò)程綜述

      ? 軟件工程的三個(gè)要素:工具,過(guò)程,方法。

      ? 通用軟件過(guò)程框架:溝通,策劃,建模,構(gòu)建,部署。?

      能力成熟度模型:第0級(jí),不完全級(jí);第1級(jí),已執(zhí)行級(jí);第2級(jí),已管理級(jí);第三級(jí),已定義級(jí);第4級(jí),已定量管理級(jí);第5級(jí),優(yōu)化級(jí)。

      第三章 過(guò)程模型

      ? 簡(jiǎn)述慣例框架包含的主要活動(dòng):溝通、策劃、建模、構(gòu)建、部署。? 簡(jiǎn)述瀑布模型所包含的主要框架活動(dòng):策劃、建模、構(gòu)建、部署。?

      簡(jiǎn)述瀑布模型在實(shí)際運(yùn)用中所面臨的問(wèn)題(缺點(diǎn)):“瀑布模型是由文檔驅(qū)動(dòng)的”這個(gè)事實(shí)也是它的一個(gè)主要缺點(diǎn)。實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行;用戶常常難以清楚地給出所有需求;用戶必須有耐心,等到系統(tǒng)開發(fā)完成。

      演化過(guò)程模型產(chǎn)生的背景:業(yè)務(wù)和產(chǎn)品需求經(jīng)常變化、嚴(yán)格的交付時(shí)間、了解了核心產(chǎn)品和系統(tǒng)需求后沒(méi)有定義產(chǎn)品或系統(tǒng)擴(kuò)展的細(xì)節(jié)問(wèn)題 ?

      簡(jiǎn)述基于原型開發(fā)模型的軟件開發(fā)過(guò)程:在用戶不能給出完整、準(zhǔn)確的需求說(shuō)明,或者開發(fā)者不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等許多情況下,可以根據(jù)用戶的一組基本需求,快速建造一個(gè)原型(可運(yùn)行的軟件),然后進(jìn)行評(píng)估,進(jìn)一步精化、調(diào)整原型,使其滿足用戶的要求,也使開發(fā)者對(duì)將要做的事情有更好的理解。溝通-》快速策劃-》建模快速設(shè)計(jì)-》構(gòu)建模型-》部署交付品及反饋

      ? 簡(jiǎn)述原型開發(fā)的缺點(diǎn):1.為了使原型盡快的工作,沒(méi)有考慮軟件的總體質(zhì)量和長(zhǎng)期的可

      維護(hù)性。2.為了演示,可能采用不合適的操作系統(tǒng)、編程語(yǔ)言、效率低的算法,這些不理想的選擇成了系統(tǒng)的組成部分。3.開發(fā)過(guò)程不便于管理 ? 統(tǒng)一過(guò)程的三個(gè)特點(diǎn):用例驅(qū)動(dòng),以架構(gòu)為核心,迭代并增量

      ? 簡(jiǎn)述統(tǒng)一過(guò)程(UP)的5個(gè)階段的主要內(nèi)容:起始,細(xì)化,構(gòu)建,轉(zhuǎn)換和生產(chǎn) ? 螺旋模型強(qiáng)調(diào)了其他模型均忽略了的(風(fēng)險(xiǎn)分析)?

      橫切關(guān)注點(diǎn)的定義:一個(gè)信用卡處理系統(tǒng)的核心關(guān)注點(diǎn)是借貸/存入處理,而系統(tǒng)級(jí)的關(guān)注點(diǎn)則是日志、事務(wù)完整性、授權(quán)、安全及性能問(wèn)題等許多關(guān)注點(diǎn),我們叫它橫切關(guān)注點(diǎn) 第四章 敏捷視角下的過(guò)程 ?

      軟件工程的敏捷理念強(qiáng)調(diào)4個(gè)關(guān)鍵問(wèn)題:1.具有控制力的自我組織團(tuán)隊(duì)對(duì)所開展工作的重要性;2.團(tuán)隊(duì)成員之間、開

      發(fā)參與者與客戶之間的交流與合作;3.對(duì)“變更代表機(jī)遇”的認(rèn)識(shí);4.以及強(qiáng)調(diào)快速軟件交付以讓客戶滿意。?

      簡(jiǎn)述極限編程(XP)過(guò)程模型所包含的4個(gè)主要框架活動(dòng):策劃,設(shè)計(jì),編碼,測(cè)試 第五章 系統(tǒng)工程

      ? 計(jì)算機(jī)系統(tǒng)的6個(gè)系統(tǒng)要素:軟件,硬件,人員,數(shù)據(jù)庫(kù),文檔,規(guī)程

      ? Hatley-Pirbhai建模方法:用戶界面,輸入,系統(tǒng)功能和控制,輸出,維護(hù)和自檢 ? 系統(tǒng)環(huán)境圖(System Context Diagram)的表示方法(實(shí)例)第六章 需求工程

      ? 需求工程的過(guò)程:起始,導(dǎo)出,精化,協(xié)商,規(guī)格說(shuō)明,確認(rèn)和管理 ?

      在項(xiàng)目(起始)階段,軟件工程師會(huì)詢問(wèn)一些似乎與項(xiàng)目無(wú)直接關(guān)系的問(wèn)題,目的是對(duì)

      問(wèn)題、方案需求方、期望方案的本質(zhì)、客戶和開發(fā)人員之間初步的交流和合作的效果建立基本的諒解。

      ? 為什么導(dǎo)出需求這么困難:范圍問(wèn)題,理解問(wèn)題,易變問(wèn)題。? 用例的定義:講述了能表達(dá)主題場(chǎng)景的故事:最終用戶如何在一特定環(huán)境下和系統(tǒng)交互 ?

      在需求工程的導(dǎo)出階段,三個(gè)主要的需求收集活動(dòng)是:主持人會(huì)議、QFD和用戶場(chǎng)景開發(fā) 第七章 構(gòu)建分析模型

      ? 分析模型在系統(tǒng)描述和設(shè)計(jì)模型之間建立橋梁。

      ? 分析模型必須實(shí)現(xiàn)的目標(biāo):1。描述客戶需要什么;2。為軟件設(shè)計(jì)奠定基礎(chǔ);3。定義在軟件完成后可以被確認(rèn)的一組需求。

      ? 分析模型的所有元素都可以直接跟蹤到設(shè)計(jì)模型。

      ? 分析模型的4個(gè)元素:基于場(chǎng)景的元素,面向信息流的元素,基于類的元素,行為元素 ? UML泳道圖是活動(dòng)圖的一種變形,可以讓建模人員表示用例所描述的活動(dòng)流,同時(shí)指示哪個(gè)參與者或分析類對(duì)活動(dòng)矩形所描述的活動(dòng)負(fù)責(zé)。

      ? UML狀態(tài)圖為每個(gè)類表現(xiàn)活動(dòng)狀態(tài)和導(dǎo)致這些活動(dòng)狀態(tài)變化的事件 ? UML順序圖說(shuō)明事件如何引發(fā)一個(gè)對(duì)象到另一個(gè)對(duì)象的轉(zhuǎn)移

      ? 簡(jiǎn)述CRC建模的內(nèi)容:CRC提供了一個(gè)簡(jiǎn)單方法,可以識(shí)別和組織與系統(tǒng)或產(chǎn)品需求相關(guān)的類。? 使用UML類圖來(lái)舉例說(shuō)明組合和聚合之間的區(qū)別 ? 使用UML類圖舉例說(shuō)明關(guān)聯(lián)和依賴之間的區(qū)別

      系統(tǒng)分析的經(jīng)驗(yàn)原則(1)系統(tǒng)開發(fā)是面向客戶的,應(yīng)從客戶的角度考慮。

      (2)諸如系統(tǒng)開發(fā)生命周期之類的產(chǎn)品更新?lián)Q代機(jī)構(gòu)應(yīng)該在所有的信息系統(tǒng)開發(fā)項(xiàng)目中建立起來(lái)。

      (3)信息系統(tǒng)開發(fā)的過(guò)程并不是一個(gè)順序的過(guò)程,它允許步驟的重疊和倒轉(zhuǎn)等。(4)如果系統(tǒng)的成功可能性受到很大限制時(shí),應(yīng)取消整個(gè)項(xiàng)目。(5)文檔材料是系統(tǒng)開發(fā)生命周期中重要的可遞交成果,應(yīng)加以重視 第八章 設(shè)計(jì)工程 ?

      簡(jiǎn)述良好設(shè)計(jì)的三個(gè)特征:1。設(shè)計(jì)必須實(shí)現(xiàn)所有包含在分析模型中的明確需求,而且必須滿足客戶期望的所有隱含需求;2。對(duì)于那些生成代碼的人和那些進(jìn)行測(cè)試以及隨后維護(hù)軟件的人而言,設(shè)計(jì)必須是可讀的、可理解的指南;3。設(shè)計(jì)必須提供軟件的全貌,從實(shí)現(xiàn)的角度說(shuō)明數(shù)據(jù)域、功能域和行為域。? 設(shè)計(jì)模型包含的四種元素是什么:數(shù)據(jù)/類設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、構(gòu)建級(jí)設(shè)計(jì)

      ? 軟件體系結(jié)構(gòu)的定義:軟件的整體結(jié)構(gòu)和這種結(jié)構(gòu)為系統(tǒng)提供概念上完整性的方式 ? 模塊應(yīng)該詳細(xì)說(shuō)明且精心設(shè)計(jì)以求在某個(gè)模塊中包含的信息不被不需要這些信息的其他模塊訪問(wèn)

      ?

      重構(gòu)的定義:是使用這樣一種方式改變軟件系統(tǒng)的過(guò)程:不改變代碼設(shè)計(jì)的外部行為而是改進(jìn)其內(nèi)部結(jié)構(gòu)

      ? 舉例說(shuō)明逐步求精 ?

      框架和設(shè)計(jì)模式之間的區(qū)別:框架能使應(yīng)用程序的開發(fā)簡(jiǎn)單,價(jià)格低廉,但是開發(fā)框架不

      是一件容易的事。它是一個(gè)需要領(lǐng)域和設(shè)計(jì)經(jīng)驗(yàn)的反復(fù)過(guò)程。設(shè)計(jì)模式可以簡(jiǎn)化這個(gè)過(guò)程,因?yàn)樗峁┝藢?duì)過(guò)去經(jīng)驗(yàn)的抽象。框架能高度抽象同一領(lǐng)域內(nèi)的問(wèn)題,進(jìn)而降低開發(fā)難度和強(qiáng)度。因此,在軟件開發(fā)過(guò)程中把框架和模式配合起來(lái)使用,可以極大地提高軟件的重用??蚣苁擒浖?,而設(shè)計(jì)模式是軟件的知識(shí) 第九章 進(jìn)行體系結(jié)構(gòu)設(shè)計(jì) ?

      簡(jiǎn)述軟件體系結(jié)構(gòu)的作用:1。軟件體系結(jié)構(gòu)的表示有助于對(duì)計(jì)算機(jī)系統(tǒng)開發(fā)感興趣的各方(共利益者)開發(fā)交流;2。體系結(jié)構(gòu)突出了早期設(shè)計(jì)決策,這些決策對(duì)隨后的所有軟件工程工作有深遠(yuǎn)的影響,同時(shí)對(duì)系統(tǒng)作為一個(gè)可運(yùn)行實(shí)體的最后成功有重要作用。3。體系結(jié)構(gòu)“構(gòu)建了一個(gè)相對(duì)小的,易于理解的模型,該模型描述了系統(tǒng)如何構(gòu)成以及其構(gòu)建如何一起工作”

      ? 軟件體系結(jié)構(gòu)的典型分類:以數(shù)據(jù)為中心,數(shù)據(jù)流體系結(jié)構(gòu),調(diào)用和返回體系結(jié)構(gòu),面向?qū)ο篌w系結(jié)構(gòu),層次體系結(jié)構(gòu)(以圖例來(lái)說(shuō)明)?

      體系結(jié)構(gòu)環(huán)境圖所包含的要素,以圖例來(lái)說(shuō)明 第十二章 軟件測(cè)試策略

      ? 簡(jiǎn)述軟件測(cè)試策略的螺旋模型:?jiǎn)卧獪y(cè)試,集成測(cè)試,確認(rèn)測(cè)試,系統(tǒng)測(cè)試 ?

      簡(jiǎn)述單元測(cè)試中驅(qū)動(dòng)程序和樁程序的作用:驅(qū)動(dòng)程序只是一個(gè)“主程序”,它接收測(cè)試用例數(shù)據(jù),將這些數(shù)據(jù)傳遞給(將要測(cè)試的)構(gòu)件并打印相關(guān)結(jié)果。樁程序的作用是替換那些從屬于將要測(cè)試的構(gòu)件或被其調(diào)用的構(gòu)件。? 集成測(cè)試的兩種方式:一步到位和增量集成

      ? 試以圖例描述自頂向下集成測(cè)試方法的過(guò)程 ? 簡(jiǎn)述確認(rèn)測(cè)試的兩種主要方法:α測(cè)試和β測(cè)試 ? 系統(tǒng)測(cè)試的主要方法:恢復(fù)測(cè)試,安全測(cè)試,壓力測(cè)試,性能測(cè)試 ? 三種調(diào)試方法:蠻力法,回溯法,原因排除法 第十三章 測(cè)試戰(zhàn)術(shù)

      ? 好的測(cè)試所具有的特性:1。好的測(cè)試具有較高的發(fā)現(xiàn)錯(cuò)誤的可能性;2。好的測(cè)試是不冗余的;3。好的測(cè)試應(yīng)該是“最佳品種”4。好的測(cè)試應(yīng)該既不太簡(jiǎn)單也不太復(fù)雜。?

      黑盒測(cè)試的定義:所謂黑盒測(cè)試是指在完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程的前提下,在程序接

      口進(jìn)行的測(cè)試,它只檢查程序功能是否能按照規(guī)格說(shuō)明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮茌斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息的完整性.因此,又稱為功能測(cè)試。

      白盒測(cè)試的定義:所謂白盒測(cè)試就是在知道產(chǎn)品內(nèi)部工作過(guò)程或程序內(nèi)部結(jié)構(gòu)和處理過(guò)程的前提下, 檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行或按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按照預(yù)定要求正確工作的測(cè)試方法.因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯測(cè)試。? 基本路徑測(cè)試的環(huán)復(fù)雜度計(jì)算方法和獨(dú)立路徑集合的識(shí)別V(G)=E-N+2;其中E為流圖 的邊數(shù),N為流圖的結(jié)點(diǎn)數(shù)。? 控制結(jié)構(gòu)測(cè)試的3個(gè)主要方法:條件測(cè)試,數(shù)據(jù)流測(cè)試,循環(huán)測(cè)試 ? 黑盒測(cè)試的兩個(gè)主要方法:等價(jià)類劃分,邊界值分析 ? 類級(jí)可應(yīng)用的測(cè)試方法:隨機(jī)測(cè)試,劃分測(cè)試 ? 面向?qū)ο蟮念惣?jí)劃分測(cè)試的主要方法:基于狀態(tài)劃分,基于屬性劃分,基于類別劃分 ?

      以圖例說(shuō)明從行為模型導(dǎo)出測(cè)試用例 第十四章 產(chǎn)品度量

      ? 軟件度量為產(chǎn)品內(nèi)部屬性的質(zhì)量評(píng)估提供了一種(定量)方法,從而可以是軟件工程師在產(chǎn)品開發(fā)出來(lái)之前進(jìn)行質(zhì)量評(píng)估

      ? 軟件測(cè)量的5個(gè)主要活動(dòng):公式化,收集,分析,解釋,反饋 ?

      面向目標(biāo)的軟件測(cè)量(GQM范型)的內(nèi)容:1。確定特定過(guò)程活動(dòng)的明確的測(cè)量目標(biāo)或?qū)⒁u(píng)估的產(chǎn)品特性;2。定義一組必須回答的問(wèn)題以達(dá)到目標(biāo);3。確定被良好公式化的度量以幫助回答這些問(wèn)題 ?

      有效軟件度量的屬性1。簡(jiǎn)單的和可計(jì)算的2。在經(jīng)驗(yàn)上和直覺(jué)上有說(shuō)服力3。一致的和客觀的4。單位和量綱的使用是一致的。5。編程語(yǔ)言的獨(dú)立性6。高質(zhì)量反饋的有效機(jī)制

      下載軟件工程復(fù)習(xí)知識(shí)點(diǎn)總結(jié)word格式文檔
      下載軟件工程復(fù)習(xí)知識(shí)點(diǎn)總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        軟件工程復(fù)習(xí)總結(jié)

        第1章 1什么是軟件危機(jī),產(chǎn)生軟件危機(jī)的原因,消除軟件危機(jī)的途徑。 落后的軟件生產(chǎn)方式無(wú)法滿足迅速增長(zhǎng)的計(jì)算機(jī)軟件需求,從而導(dǎo)致軟件開發(fā)與維護(hù)過(guò)程中出現(xiàn)一系列嚴(yán)重問(wèn)題的現(xiàn)......

        軟件工程知識(shí)點(diǎn)總結(jié)(科大)

        1.計(jì)算機(jī)軟件是一種特殊的邏輯產(chǎn)品,其為在計(jì)算機(jī)上運(yùn)行的各種程序、數(shù)據(jù)及其說(shuō)明程序的各種文檔。 2.軟件承擔(dān)著雙重角色,軟件是一個(gè)產(chǎn)品,同時(shí)又是產(chǎn)品交付使用的載體。 3.軟件......

        軟件工程知識(shí)點(diǎn)

        第一章軟件工程概述 一、軟件的定義和特性(P2—P3) 定義:軟件=程序+數(shù)據(jù)+文檔 程序:按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令或語(yǔ)句序列 數(shù)據(jù):程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu) 文......

        軟件工程知識(shí)點(diǎn)

        1.什么是軟件危機(jī),它有哪些典型表現(xiàn)?答:軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。概括地說(shuō),軟件危機(jī)包含下述兩方面的問(wèn)題:如何開發(fā)軟件,以滿足對(duì)軟件......

        軟件工程期末復(fù)習(xí)總結(jié)

        軟件工程期末復(fù)習(xí)總結(jié) 第一章 軟件工程學(xué)概述 1.軟件危機(jī):是指在計(jì)算機(jī)軟件開發(fā)、使用與維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題和難題。包括如何開發(fā)軟件,如何維護(hù)數(shù)量不斷膨脹的已......

        軟件工程復(fù)習(xí)總結(jié)(合集5篇)

        第一章 軟件工程概述 1.軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題. 2.軟件危機(jī)的典型表現(xiàn): ①對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確. ②用戶對(duì)......

        軟件工程復(fù)習(xí)點(diǎn)總結(jié)

        軟件工程 第一章 1. 軟件過(guò)程模型有:線性順序模型(瀑布模型),原型實(shí)現(xiàn)模型,螺旋模型,快速應(yīng)用開發(fā)模型RAD,并發(fā)模型,基于構(gòu)件的開發(fā)模型,形式化方法模型,第四代技術(shù)。 2. 軟件危機(jī)變現(xiàn)......

        軟件工程復(fù)習(xí)重點(diǎn)總結(jié)

        第一章軟件過(guò)程:需求設(shè)計(jì)實(shí)現(xiàn)發(fā)布 軟件過(guò)程三要素: 過(guò)程+方法+工具 瀑布rup scrum Iconix Scrum是一種迭代式增量軟件開發(fā)過(guò)程,通常用于敏捷軟件開發(fā)。 Product Owner、 Scrum......