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

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

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

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

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

      軟件工程導(dǎo)論(第6版)

      時(shí)間:2019-05-15 02:15:05下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《軟件工程導(dǎo)論(第6版)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《軟件工程導(dǎo)論(第6版)》。

      第一篇:軟件工程導(dǎo)論(第6版)

      第一章、軟件工程學(xué)概述

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

      軟件危機(jī)包含下述兩個(gè)方面的問(wèn)題:1.如何開(kāi)發(fā)軟件,以滿(mǎn)足對(duì)軟件日益增長(zhǎng)的需求。

      2.如何維護(hù)數(shù)量不斷膨脹的已有軟件。

      具體的說(shuō),軟件危機(jī)主要有以下一些典型表現(xiàn):1.對(duì)軟件開(kāi)發(fā)成本的進(jìn)度的估計(jì)常常很不準(zhǔn)確。

      2.用戶(hù)對(duì)“已完成的”軟件系統(tǒng)不滿(mǎn)意的現(xiàn)象經(jīng)常發(fā)生 3.軟件產(chǎn)品的質(zhì)量往往靠不住。4.軟件常常是不可維護(hù)的。

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

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

      7.軟件開(kāi)發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。

      軟件生命周期:一個(gè)軟件從定義、開(kāi)發(fā)、使用和維護(hù),知道最終被廢棄,要經(jīng)歷一個(gè)漫長(zhǎng)的時(shí)期,通常把軟件經(jīng)歷的這個(gè)漫長(zhǎng)的時(shí)期稱(chēng)為生命周期。軟件配置:程序、文檔和數(shù)據(jù)。

      軟件工程學(xué)的一個(gè)重要的目標(biāo):就是提高軟件的可維護(hù)性,減少軟件維護(hù)的代價(jià)。軟件:是程序、數(shù)據(jù)及相關(guān)文檔的集合。

      程序:是能夠完成預(yù)定功能和性能的可執(zhí)行的指令序列。數(shù)據(jù):是使程序能夠適當(dāng)?shù)靥幚硇畔⒌臄?shù)據(jù)結(jié)構(gòu)。文檔:是開(kāi)發(fā)、使用和維護(hù)程序所需要的圖文資料。軟件工程:指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)工程學(xué)科。

      軟件工程具有下屬的本質(zhì)特性:1.軟件工程關(guān)注于大型程序的構(gòu)造。2.軟件工程的中心課題是控制復(fù)雜性。3.軟件經(jīng)常變化。4.開(kāi)發(fā)軟件的效率非常重要。5.和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵。6.軟件必須有效地支持它的用戶(hù)。7.在軟件工程領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。

      軟件工程的7條基本原理:1.用分階段的生命周期計(jì)劃嚴(yán)格管理。2.堅(jiān)持進(jìn)行階段評(píng)審。3.實(shí)行嚴(yán)格的產(chǎn)品控制4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)。5.結(jié)構(gòu)應(yīng)能清楚的審查。6.開(kāi)發(fā)小組的人員應(yīng)該少而精。7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。軟件工程:包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱(chēng)為方法學(xué),也稱(chēng)為泛型。軟件工程方法學(xué)(包括傳統(tǒng)方法學(xué)、面向?qū)ο蠓椒▽W(xué))包含三個(gè)要素:方法、工具和過(guò)程。方法:是完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“怎樣做”的問(wèn)題。工具:是為運(yùn)用方法而提供的自動(dòng)的或半自動(dòng)的軟件工程支撐環(huán)境。

      工程:是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。

      面向?qū)ο蠓椒▽W(xué):把數(shù)據(jù)和行為看成是同等重要的,它是一種以數(shù)據(jù)為主線(xiàn),把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來(lái)的方法。

      面向?qū)ο蠓椒▽W(xué)具有下述四個(gè)要點(diǎn):1.把對(duì)象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。

      2.把所有對(duì)象都劃分成類(lèi)。

      3.按照父類(lèi)與子類(lèi)的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。4.對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系。

      面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):降低了軟件產(chǎn)品的復(fù)雜性,提高了軟件的可理解性,簡(jiǎn)化了軟件的開(kāi)發(fā)和維護(hù)工作。

      軟件生命周期:軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)。軟件定義:?jiǎn)栴}定義、可行性研究和需求分析。軟件開(kāi)發(fā):總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼和單元測(cè)試,綜合測(cè)試。

      1.問(wèn)題定義:?jiǎn)栴}定義階段必須回答的關(guān)鍵問(wèn)題是:“要解決的問(wèn)題是什么?”。

      2.可行性研究:這個(gè)階段回答的關(guān)鍵問(wèn)題是:“對(duì)于上一個(gè)階段所確定的問(wèn)題有行得通的解決辦法嗎?” 3.需求分析:確定目標(biāo)系統(tǒng)必須具備哪些功能。4.總體設(shè)計(jì):這個(gè)階段必須回答的關(guān)鍵問(wèn)題是:“概括地說(shuō),應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”總體設(shè)計(jì)又稱(chēng)為概要設(shè)計(jì)。5.詳細(xì)設(shè)計(jì):這個(gè)階段應(yīng)回答的關(guān)鍵問(wèn)題是:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”

      6.編碼和單元測(cè)試:這個(gè)階段的關(guān)鍵任務(wù)是寫(xiě)出正確的容易理解、容易維護(hù)的程序模塊。7.綜合測(cè)試:這個(gè)階段的關(guān)鍵任務(wù)是通過(guò)各種類(lèi)型的測(cè)試使軟件達(dá)到預(yù)定的要求。8.軟件維護(hù):關(guān)鍵任務(wù)是通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿(mǎn)足用戶(hù)的需要。軟件工程過(guò)程:是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。生命周期模型:規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,因此,也稱(chēng)為過(guò)程模型。生命周期模型包括:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、瀑布模型的特點(diǎn):1.階段間具有順序性和依賴(lài)性。2.推遲實(shí)現(xiàn)的觀點(diǎn)。3.質(zhì)量保證的觀點(diǎn)。

      快速原型:是快速建立起來(lái)的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成功能的一個(gè)子集。

      增量模型:它分批地逐步向用戶(hù)提交產(chǎn)品,整個(gè)軟件產(chǎn)品被分解成許多個(gè)增量構(gòu)件,開(kāi)發(fā)人員一個(gè)構(gòu)件一個(gè)構(gòu)件地向用戶(hù)提交產(chǎn)品。

      螺旋模型:基本思想是使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn)。理解這種模型的一個(gè)簡(jiǎn)單方法,是把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型。(使用于內(nèi)部開(kāi)發(fā)的大規(guī)模軟件項(xiàng)目)

      噴泉模型:是典型的面向?qū)ο蟮能浖^(guò)程模型之一。

      面向?qū)ο蠓椒▽W(xué)的四個(gè)要點(diǎn):

      面向?qū)ο蠓椒?= 對(duì)象 + 類(lèi) + 繼承 + 用消息通信

      第二章、可行性研究

      可行性研究的目的:就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。必須記住,可行性研究的目的不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決。

      對(duì)每種解法都應(yīng)該仔細(xì)研究它的可行性,一般說(shuō)來(lái),至少應(yīng)該從下述3個(gè)方面研究每種解法的可行性: 1)技術(shù)可行性 2)經(jīng)濟(jì)可行性 3)操作可行性

      可行性研究最根本的任務(wù):是對(duì)以后的行動(dòng)方針提出建議。

      典型的可行性研究有下述一些步驟:1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)。2.研究目前正在使用的系統(tǒng)3.導(dǎo)出新系統(tǒng)的高層邏輯模型 4.進(jìn)一步定義問(wèn)題 5.導(dǎo)出和評(píng)價(jià)供選擇的解法 6.推薦行動(dòng)方針 7.草擬開(kāi)發(fā)計(jì)劃 8.書(shū)寫(xiě)文檔提交審查。

      系統(tǒng)流程圖:是概括性地描繪物理系統(tǒng)的傳統(tǒng)工具,它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過(guò)程,因此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。數(shù)據(jù)流圖:是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變幻。數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動(dòng)中的數(shù)據(jù)。數(shù)據(jù)流圖的基本要點(diǎn):是描繪“做什么”,而不考慮“怎么做”。

      為數(shù)據(jù)流命名:1)名字應(yīng)代表整個(gè)數(shù)據(jù)流的內(nèi)容,而不是僅僅反映它的某些成分。

      2)不要使用空洞的、缺乏具體含義的名字。

      3)如果在為某個(gè)數(shù)據(jù)流起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的,應(yīng)該試

      試重新分解,看是否能克服這個(gè)困難。

      畫(huà)數(shù)據(jù)流圖的基本目的是利用它作為交流通信的工具。

      數(shù)據(jù)字典:是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典的作用:在軟件分析和設(shè)計(jì)的過(guò)程中給人提供關(guān)于數(shù)據(jù)的描述信息。

      系統(tǒng)的邏輯模型:由數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成,沒(méi)有數(shù)據(jù)字典,數(shù)據(jù)流圖就不嚴(yán)格,然而沒(méi)有數(shù)據(jù)流圖,數(shù)據(jù)字典也難于發(fā)揮作用。

      數(shù)據(jù)字典應(yīng)該由對(duì)下列4類(lèi)元素的定義組成:數(shù)據(jù)流、數(shù)據(jù)流分量、數(shù)據(jù)存儲(chǔ)和處理。由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述3種基本類(lèi)型:順序、選擇、重復(fù)和可選。數(shù)據(jù)字典最主要的用途:就是作為分析階段的工具。

      成本/效益分析的目標(biāo):正式要從經(jīng)濟(jì)角度分析開(kāi)發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而幫助客戶(hù)組織的負(fù)責(zé)人正確地做出是否投資于這項(xiàng)開(kāi)發(fā)工程的決定。

      系統(tǒng)流程圖:實(shí)質(zhì)上是物理流程圖,它描繪組成系統(tǒng)的主要物理元素以及信息在這些元素間流動(dòng)和處理的情況。

      第三章、需求分析

      需求分析的任務(wù)是:準(zhǔn)確地回答“系統(tǒng)必須做什么”這個(gè)問(wèn)題。

      需求分析方法應(yīng)遵循的準(zhǔn)則:1.必須理解并描述問(wèn)題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型。

      2.必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。

      3.必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。

      4.必須對(duì)描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展示細(xì)節(jié)。

      通常對(duì)軟件系統(tǒng)有以下幾方面的綜合要求:1.功能需求 2.性能需求 3.可靠性和可用性需求 4.出錯(cuò)處理需求 5.接口需求6.約束 7.逆向需求 8.將來(lái)可能提出的要求

      軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),而任何信息處理系統(tǒng)的基本功能都是把輸入數(shù)據(jù)轉(zhuǎn)變成需要的輸出信息。需求分析的目標(biāo)之一:就是把數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)定義到元素級(jí)??焖俳④浖褪亲顪?zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)。

      快速原型就是快速建立起來(lái)的旨在演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行的程序??焖僭蛻?yīng)該具備的特性:1.快速

      2.容易修改

      模型:就是為了理解事務(wù)而對(duì)事務(wù)做出的一種抽象,是對(duì)事務(wù)的一種無(wú)歧義的書(shū)面描述。通常,模型由一組圖形符號(hào)和組織這些符號(hào)的規(guī)則組成。

      需求分析過(guò)程應(yīng)該建立三種模型:數(shù)據(jù)模型(實(shí)體-聯(lián)系圖)、功能模型(數(shù)據(jù)流圖)和行為模型(狀態(tài)轉(zhuǎn)換圖)。概念數(shù)據(jù)模型:是一種面向問(wèn)題的數(shù)據(jù)模型,是按照用戶(hù)的觀點(diǎn)對(duì)數(shù)據(jù)建立的模型。它描述了從用戶(hù)角度看到的數(shù)據(jù),它反應(yīng)了用戶(hù)的現(xiàn)實(shí)環(huán)境,而且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法無(wú)關(guān)。

      數(shù)據(jù)模型中包含3中相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性及數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。數(shù)據(jù)對(duì)象:是對(duì)軟件必須理解的復(fù)合信息的抽象。

      復(fù)合信息:是指具有一系列不同性質(zhì)或?qū)傩缘氖挛?,僅有單個(gè)值的事物不是數(shù)據(jù)對(duì)象。屬性:定義了數(shù)據(jù)對(duì)象的性質(zhì)。

      聯(lián)系:數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱(chēng)為聯(lián)系,也稱(chēng)為關(guān)系。聯(lián)系可分為以下三種類(lèi)型:一對(duì)一,一對(duì)多和多對(duì)多。

      第一范式:每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡(jiǎn)單值而不含內(nèi)部結(jié)構(gòu)。第二范式:滿(mǎn)足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整個(gè)關(guān)鍵字決定。

      第三范式:符合第二范式的條件,每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個(gè)非關(guān)鍵字屬性不能僅僅是對(duì)另一個(gè)非關(guān)鍵字屬性的進(jìn)一步描述。

      狀態(tài)轉(zhuǎn)換圖:通過(guò)描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來(lái)表示系統(tǒng)的行為。

      事件:是在某個(gè)特定時(shí)刻發(fā)生的事情,它是對(duì)引起系統(tǒng)做動(dòng)作或從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象。IPO圖:是輸入、處理、輸出圖的簡(jiǎn)稱(chēng),能方便地描繪輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。

      模塊:在程序中是數(shù)據(jù)說(shuō)明、可執(zhí)行語(yǔ)句等程序?qū)ο蟮募?,或者是單?dú)命名和編址的元素,在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換的單元。

      第四章、形式化說(shuō)明技術(shù)

      按照形式化的程度,可以把軟件工程使用的方法劃分成:非形式化、半形式化和形式化3類(lèi)

      形式化方法:是描述系統(tǒng)性質(zhì)的基于數(shù)學(xué)的技術(shù),也就是說(shuō),如果一種方法有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ),那么它就是形式化的。矛盾:指一組相互沖突的陳述。

      二義性:是指讀者可以用不同方式理解的陳述。

      不完整性:可能是在系統(tǒng)規(guī)格說(shuō)明中最常遇到的問(wèn)題之一。

      形式化規(guī)格說(shuō)明技術(shù)的優(yōu)點(diǎn):形式化的規(guī)格說(shuō)明技術(shù)可以用數(shù)學(xué)方法研究、驗(yàn)證。此外,形式化的規(guī)格說(shuō)明消除了二義性,而且它鼓勵(lì)軟件開(kāi)發(fā)工程過(guò)程的早期階段使用更嚴(yán)格的方法,從而可以減少差錯(cuò)。

      第五章、總體設(shè)計(jì)

      總體設(shè)計(jì)的基本目的:就是回答“概括地說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)”這個(gè)問(wèn)題,因此總體設(shè)計(jì)又稱(chēng)為概要設(shè)計(jì)或者初步設(shè)計(jì)。

      總體設(shè)計(jì)的另一項(xiàng)重要任務(wù)是:設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。

      在詳細(xì)設(shè)計(jì)之前先進(jìn)行總體設(shè)計(jì)的必要性:可以站在全局高度上,花較少成本,從較抽象的層次上分析對(duì)比多種可能的系統(tǒng)實(shí)現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的軟件結(jié)構(gòu),從而用較低成本開(kāi)發(fā)較高質(zhì)量的軟件系統(tǒng)??傮w設(shè)計(jì)過(guò)程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。

      典型的總體設(shè)計(jì)過(guò)程包括下述9個(gè)步驟:1.設(shè)想供選擇的方案 2.選取合理的方案 3.推薦最佳方案 4.功能分解 5.設(shè)計(jì)軟件結(jié)構(gòu) 6.設(shè)計(jì)數(shù)據(jù)庫(kù) 7.制定測(cè)試計(jì)劃 8.書(shū)寫(xiě)文檔 9.審查和復(fù)審 模塊:是由邊界元素限定的相鄰程序元素的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。

      模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪(fǎng)問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)夠成一個(gè)整體,可以完成指定的功能滿(mǎn)足用戶(hù)的需求。

      抽象:抽出事物的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)。

      逐步求精:為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮。

      為什么模塊獨(dú)立很重要呢?主要有兩條理由:第一,有效的模塊化的軟件比較容易開(kāi)發(fā)出來(lái)。第二,獨(dú)立的模塊比較容易測(cè)試和維護(hù)。

      模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量,這兩個(gè)標(biāo)準(zhǔn)分別稱(chēng)為內(nèi)聚和耦合。

      耦合:是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪(fǎng)問(wèn)一個(gè)模塊的點(diǎn),以及通過(guò)接口的數(shù)據(jù)。

      數(shù)據(jù)耦合:如果兩個(gè)模塊彼此間通過(guò)參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱(chēng)為數(shù)據(jù)耦合。控制耦合:如果傳遞的信息中有控制信息,則這種耦合稱(chēng)為控制耦合。

      數(shù)據(jù)耦合是低耦合??刂岂詈鲜侵械瘸潭鹊鸟詈?,它增加了系統(tǒng)的復(fù)雜程度。

      特征耦合:當(dāng)把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素時(shí),就出現(xiàn)了特征耦合。最高程度的耦合是內(nèi)容耦合,如果出現(xiàn)下列情況之一,兩個(gè)模塊間就發(fā)生了內(nèi)容耦合。1.一個(gè)模塊訪(fǎng)問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)。

      2.一個(gè)模塊不通過(guò)正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部。3.兩個(gè)模塊有一部分程序代碼重疊。4.一個(gè)模塊有多個(gè)入口。

      應(yīng)該采用下述設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。

      內(nèi)聚:標(biāo)志著一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。低內(nèi)聚有如下幾類(lèi):

      偶然內(nèi)聚:如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很松散的,就叫做偶然內(nèi)聚。邏輯內(nèi)聚:如果一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類(lèi),則稱(chēng)為邏輯內(nèi)聚。時(shí)間內(nèi)聚:如果一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行,就叫時(shí)間內(nèi)聚。中內(nèi)聚主要有以下兩類(lèi):

      過(guò)程內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素時(shí)相關(guān)的,而且必須以特定次序執(zhí)行,則稱(chēng)為過(guò)程內(nèi)聚。通信內(nèi)聚:如果模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱(chēng)為通信內(nèi)聚。高內(nèi)聚也有兩類(lèi):

      順序內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,則稱(chēng)為順序內(nèi)聚。

      功能內(nèi)聚:如果模塊內(nèi)所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能,則稱(chēng)為功能內(nèi)聚。功能內(nèi)聚是最高程度的內(nèi)聚。

      面向數(shù)據(jù)流的設(shè)計(jì)方法的目標(biāo):是給出設(shè)計(jì)軟件結(jié)構(gòu)的一個(gè)系統(tǒng)化的途徑。信息流有下述兩種類(lèi)型:變換流和事務(wù)流。

      第六章、詳細(xì)設(shè)計(jì)

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

      詳細(xì)設(shè)計(jì)階段的任務(wù)還不是具體地編寫(xiě)程序,而是要設(shè)計(jì)出程序的“藍(lán)圖”,以后程序員將根據(jù)這個(gè)“藍(lán)圖”寫(xiě)出實(shí)際的程序代碼。

      三種基本的控制結(jié)構(gòu):順序、選擇和循環(huán)。

      結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義如下所述:“如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這三種基本控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱(chēng)這個(gè)程序是結(jié)構(gòu)化的。”

      在設(shè)計(jì)人機(jī)界面的過(guò)程中,幾乎總會(huì)遇到下述4個(gè)問(wèn)題:系統(tǒng)響應(yīng)時(shí)間、用戶(hù)幫助設(shè)施、出錯(cuò)信息處理和命令交互。系統(tǒng)響應(yīng)時(shí)間是指:從用戶(hù)完成某個(gè)控制動(dòng)作,到軟件給出預(yù)期響應(yīng)之間的這段時(shí)間。系統(tǒng)響應(yīng)時(shí)間有兩個(gè)重要屬性:長(zhǎng)度和易變。

      3類(lèi)人際界面設(shè)計(jì)指南:一般交互指南、信息顯示指南和數(shù)據(jù)輸入指南。

      描繪程序處理過(guò)程的工具稱(chēng)為過(guò)程設(shè)計(jì)的工具,它們可以分為圖形、表格和語(yǔ)言3類(lèi)。圖形:程序流程圖、盒圖、PAD圖。表格:判定表、判定樹(shù)。語(yǔ)言:過(guò)程設(shè)計(jì)語(yǔ)言。

      面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是:得出對(duì)程序處理過(guò)程的描述。最著名的兩個(gè)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法:Jockson和Warnier方法。Jockson方法的邏輯關(guān)系包括:順序、選擇和重復(fù)。程序復(fù)雜度的定量度量:McCabe方法和Halstead方法

      McCade方法:根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度,這樣度量出的結(jié)果稱(chēng)為程序的環(huán)形復(fù)雜度。Halstead方法:是一個(gè)著名的方法,它根據(jù)程序中運(yùn)算符和操作數(shù)的總數(shù)來(lái)度量程序的復(fù)雜程度。

      第七章、實(shí)現(xiàn)

      通常把編碼和測(cè)試統(tǒng)稱(chēng)為實(shí)現(xiàn)。

      所謂編碼:就是把軟件設(shè)計(jì)結(jié)果翻譯成用某種程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的程序。

      測(cè)試的目的:就是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。

      軟件工程的根本目標(biāo):是開(kāi)發(fā)出高質(zhì)量的完全符合用戶(hù)需要的軟件,因此,通過(guò)測(cè)試發(fā)現(xiàn)錯(cuò)誤之后還必須診斷并改正錯(cuò)誤,這就是調(diào)試的目的。

      源程序代碼的邏輯簡(jiǎn)明清晰、易讀易懂是好程序的一個(gè)重要標(biāo)準(zhǔn),為了做到這一點(diǎn),應(yīng)該遵循下列規(guī)則:

      1.程序內(nèi)部的文檔 2.數(shù)據(jù)說(shuō)明 3.語(yǔ)句構(gòu)造 4.輸入輸出 5.效率

      程序內(nèi)部的文檔:包括恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X(jué)組織等。效率:主要指處理機(jī)時(shí)間和存儲(chǔ)器容量?jī)蓚€(gè)方面。

      測(cè)試階段的根本目標(biāo)是:盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯(cuò)誤,最終把一個(gè)高質(zhì)量的軟件系統(tǒng)交給用戶(hù)使用。軟件的目標(biāo)或定義:

      1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程。

      2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案。3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。測(cè)試的正確定義是“為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程”。軟件測(cè)試的準(zhǔn)則:

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

      2)應(yīng)該遠(yuǎn)在測(cè)試開(kāi)始之前就制定出測(cè)試計(jì)劃。3)把Pareto原理應(yīng)用到軟件測(cè)試中。

      4)應(yīng)該從“小規(guī)?!睖y(cè)試開(kāi)始,并逐步進(jìn)行“大規(guī)?!睖y(cè)試。5)窮舉測(cè)試是不可能的。

      6)為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作。測(cè)試任何產(chǎn)品都有兩種方法:

      黑盒測(cè)試(功能測(cè)試,在測(cè)試過(guò)程的早期進(jìn)行):如果已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能,可以通過(guò)測(cè)試來(lái)檢查是否每個(gè)功能都能正常使用。

      白盒測(cè)試(結(jié)構(gòu)測(cè)試,主要用于測(cè)試過(guò)程的后期):如果知道產(chǎn)品的內(nèi)部工作過(guò)程,可以通過(guò)測(cè)試來(lái)檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書(shū)的規(guī)定正常進(jìn)行。

      設(shè)計(jì)白盒測(cè)試方案的技術(shù)主要有,邏輯覆蓋和控制結(jié)構(gòu)測(cè)試;設(shè)計(jì)黑盒測(cè)試方案的技術(shù)主要有,等價(jià)劃分、邊界值分析和錯(cuò)誤推測(cè)。

      大型軟件系統(tǒng)的測(cè)試過(guò)程基本上由下述幾個(gè)步驟組成:

      1.模塊測(cè)試:模塊測(cè)試的目的是保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行,所以模塊測(cè)試通常又稱(chēng)為單元測(cè)試。2.子系統(tǒng)測(cè)試:子系統(tǒng)測(cè)試是把經(jīng)過(guò)單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來(lái)測(cè)試。模塊相互間的協(xié)調(diào)和通信是這個(gè)測(cè)試過(guò)程中的主要問(wèn)題,因此,這個(gè)步驟著重測(cè)試模塊的接口。3.系統(tǒng)測(cè)試:是把經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來(lái)測(cè)試。

      4.驗(yàn)收測(cè)試:把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)測(cè)試基本類(lèi)似,但是它是用戶(hù)積極參與下進(jìn)行的,而且可能主要使用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。驗(yàn)收測(cè)試的目的是驗(yàn)證系統(tǒng)確實(shí)能夠滿(mǎn)足用戶(hù)的需要,在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說(shuō)明書(shū)的錯(cuò)誤。驗(yàn)收測(cè)試也稱(chēng)為確認(rèn)測(cè)試。

      5.平行運(yùn)行:就是同時(shí)運(yùn)行新開(kāi)發(fā)出來(lái)的系統(tǒng)和將被它取代的舊系統(tǒng),以便比較新舊兩個(gè)系統(tǒng)的處理結(jié)果。單元測(cè)試集中檢測(cè)軟件設(shè)計(jì)的最小單元——模塊。

      可以應(yīng)用人工測(cè)試和計(jì)算機(jī)測(cè)試這樣兩種不同類(lèi)型的測(cè)試方法,完成單元測(cè)試工作。通常,單元測(cè)試主要使用白盒測(cè)試技術(shù),而且對(duì)多個(gè)模塊的測(cè)試可以并行地進(jìn)行。在單元測(cè)試期間著重從下述5個(gè)方面對(duì)模塊進(jìn)行測(cè)試:

      1)模塊接口

      2)局部數(shù)據(jù)結(jié)構(gòu)

      3)重要的執(zhí)行通路

      4)出錯(cuò)處理通路

      5)邊界條件 集成測(cè)試:是測(cè)試和組裝軟件的系統(tǒng)化技術(shù),主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問(wèn)題。由模塊組裝成程序時(shí)有兩種方法:

      1)非漸增式測(cè)試方法:先分別測(cè)試每個(gè)模塊,再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所要的程序。

      2)漸增式測(cè)試:把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)試好的那些模塊結(jié)合起來(lái)進(jìn)行測(cè)試,測(cè)試完以后再把下一個(gè)應(yīng)該測(cè)試的模塊結(jié)合進(jìn)來(lái)測(cè)試。

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

      回歸測(cè)試:是指重新執(zhí)行已經(jīng)做過(guò)的測(cè)試的某個(gè)子集,以保證上述這些變化沒(méi)有帶來(lái)非預(yù)期的副作用。

      回歸測(cè)試就是用于保證由于調(diào)試或其他原因引起的變化,不會(huì)導(dǎo)致非預(yù)期的軟件行為或額外錯(cuò)誤的測(cè)試活動(dòng)。確認(rèn)測(cè)試也稱(chēng)為驗(yàn)收測(cè)試,它的目標(biāo)是驗(yàn)證軟件的有效性。

      通常,驗(yàn)證指的是保證軟件正確地實(shí)現(xiàn)了某個(gè)特定要求的一系列活動(dòng),而確認(rèn)指的是為了保證軟件確實(shí)滿(mǎn)足了用戶(hù)需求而進(jìn)行的一系列活動(dòng)。

      軟件有效性的一個(gè)簡(jiǎn)單定義是:如果軟件的功能和性能如同用戶(hù)所合理期待的那樣,軟件就是有效的。

      需求分析階段產(chǎn)生的軟件需求規(guī)格說(shuō)明書(shū),準(zhǔn)確地描述了用戶(hù)對(duì)軟件的合理期望,因此是軟件有效性的標(biāo)準(zhǔn),也是進(jìn)行確認(rèn)測(cè)試的基礎(chǔ)。

      確認(rèn)測(cè)試通常使用黑盒測(cè)試法。

      復(fù)查的目的是:保證軟件配置的所有成分都齊全,質(zhì)量符合要求,文檔與程序完全一致,具有完成軟件維護(hù)所必須的細(xì)節(jié),而且已經(jīng)編好目錄。

      測(cè)試用例:把測(cè)試數(shù)據(jù)和預(yù)期的輸出結(jié)果稱(chēng)為測(cè)試用例。

      一般說(shuō)來(lái),有下列3種調(diào)試途徑可以采用:1.蠻干法

      2.回溯法

      3.原因排除法 測(cè)試的根本目標(biāo)是:消除錯(cuò)誤,保證軟件的可靠性。

      軟件的可靠性是:程序在給定的時(shí)間間隔內(nèi),按照規(guī)格說(shuō)明書(shū)的規(guī)定成功地運(yùn)行的概率。

      軟件可用性的一個(gè)定義是:軟件可用性是程序在給定的時(shí)間點(diǎn),按照規(guī)格說(shuō)明書(shū)的規(guī)定,成功地運(yùn)行的概率。

      第八章、維護(hù)

      維護(hù)階段的基本任務(wù)是:保證軟件在一個(gè)相當(dāng)長(zhǎng)的時(shí)期能夠正常運(yùn)行。

      軟件工程的主要目的:就是要提高軟件的可維護(hù)性,減少軟件維護(hù)所需要的工作量,降低軟件系統(tǒng)的總成本。軟件維護(hù):就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿(mǎn)足新的需要而修改軟件的過(guò)程。改正性維護(hù):為了糾正在使用過(guò)程中暴露出來(lái)的錯(cuò)誤。適應(yīng)性維護(hù):為了適應(yīng)外部環(huán)境的變化。完善性維護(hù):為了改進(jìn)原有的軟件。

      預(yù)防性維護(hù):為了改進(jìn)將來(lái)的可維護(hù)性和可靠性。它實(shí)質(zhì)上是軟件再工程。

      可以把軟件的可維護(hù)性定性的定義為:維護(hù)人員理解、改正、改動(dòng)或改進(jìn)這個(gè)軟件的難易程度。決定軟件可維護(hù)性的因素主要有下述5個(gè):可理解性、可測(cè)試性、可修改性、可移植性和可重用性。文檔是影響軟件可維護(hù)性的決定因素。

      文檔類(lèi)型:1.用戶(hù)文檔,主要描述系統(tǒng)功能和使用方法,并不關(guān)心這些功能是怎樣實(shí)現(xiàn)的 2.系統(tǒng)文檔,描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等各方面的內(nèi)容。總地來(lái)說(shuō),軟件文檔應(yīng)該滿(mǎn)足下述要求:

      1)必須描述如何使用這個(gè)系統(tǒng),沒(méi)有這種描述時(shí)即使是最簡(jiǎn)單的系統(tǒng)也無(wú)法使用。2)必須描述怎樣安裝和管理這個(gè)系統(tǒng)。3)必須描述系統(tǒng)需求和設(shè)計(jì)。

      4)必須描述系統(tǒng)的實(shí)現(xiàn)和測(cè)試,以便使系統(tǒng)稱(chēng)為可維護(hù)的。用戶(hù)文檔應(yīng)該至少包括下述5個(gè)方面的內(nèi)容:

      1.功能描述 2.安裝文檔 3.使用手冊(cè) 4.參考手冊(cè) 5.操作員指南 下述3類(lèi)活動(dòng)有可能成為預(yù)防性維護(hù)的對(duì)象: 1.預(yù)定將使用多年的程序 2.當(dāng)前正在成功地使用著的程序 3.在最近的將來(lái)可能要做重大修改或增強(qiáng)的程序。

      典型的軟件再工程過(guò)程模型定義了庫(kù)存目錄分析、文檔重構(gòu)、逆向工程、代碼重構(gòu)、數(shù)據(jù)重構(gòu)和正向工程6類(lèi)活動(dòng)。

      第九章、面向?qū)ο蠓椒▽W(xué)引論

      人們把客觀世界中的實(shí)體抽象為問(wèn)題域中的對(duì)象。

      與傳統(tǒng)的方法相反,面向?qū)ο蠓椒ㄊ且环N以數(shù)據(jù)或信息為主線(xiàn),把數(shù)據(jù)和處理相結(jié)合的方法。面向?qū)ο蠓椒ò褜?duì)象作為由數(shù)據(jù)及可以施加在這些數(shù)據(jù)上的操作所構(gòu)成的統(tǒng)一體。

      面向?qū)ο?= 對(duì)象 + 類(lèi) + 繼承 + 對(duì)象之間僅能通過(guò)傳遞消息實(shí)現(xiàn)彼此通信

      面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):1.與人類(lèi)習(xí)慣的思維方法一致.穩(wěn)定性好

      3.可重用性好

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

      5.可

      維護(hù)性好。

      面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。

      面向?qū)ο蠓椒▽W(xué)的基本原則是:按照人類(lèi)習(xí)慣的思維方法建立問(wèn)題域的模型,開(kāi)發(fā)出盡可能直觀、自然地表現(xiàn)求解方

      法的軟件系統(tǒng)。

      對(duì)象是對(duì)問(wèn)題域中某個(gè)實(shí)體的抽象,設(shè)立某個(gè)對(duì)象就反映了軟件系統(tǒng)具有保存有關(guān)的信息并且與它進(jìn)行交互的能力。對(duì)象:是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,這個(gè)封裝體有可以唯一地標(biāo)識(shí)它的名字,而且向外界提供一組服務(wù)。對(duì)象有如下一些基本特點(diǎn):

      1.以數(shù)據(jù)為中心 2.對(duì)象是主動(dòng)的 3.實(shí)現(xiàn)了數(shù)據(jù)封裝 4.本質(zhì)上具有并行性 5.模塊獨(dú)立性好

      類(lèi):是對(duì)具有相同屬性和行為的一個(gè)或多個(gè)對(duì)象的描述,通常在這種描述中也包括對(duì)怎樣創(chuàng)建該類(lèi)的新對(duì)象的說(shuō)明。類(lèi)是支持繼承的抽象數(shù)據(jù)類(lèi)型,而對(duì)象就是類(lèi)的實(shí)例。實(shí)例就是由某個(gè)特定的類(lèi)所描述的一個(gè)具體的對(duì)象。

      類(lèi)是具有相同屬性和行為的一組相似的對(duì)象的抽象,類(lèi)在現(xiàn)實(shí)世界中并不能真正存在。消息:就是要求某個(gè)對(duì)象執(zhí)行在定義它的那個(gè)類(lèi)中所定義的某個(gè)操作的規(guī)格說(shuō)明。

      通常,一個(gè)消息由下述3部分組成:1.接收消息的對(duì)象

      2.消息選擇符

      3.零個(gè)或多個(gè)變?cè)?方法:就是對(duì)象所能執(zhí)行的操作,也就是類(lèi)中所定義的服務(wù)。

      屬性:就是類(lèi)中所定義的數(shù)據(jù),它是對(duì)客觀世界實(shí)體所具有的性質(zhì)的抽象。封裝:就是把某個(gè)事物包起來(lái),使外界不知道該事物的具體內(nèi)容。

      對(duì)象具有封裝性的條件如下:1.有一個(gè)清晰的邊界

      2.有確定的接口

      3.受保護(hù)的內(nèi)部實(shí)現(xiàn)

      繼承:是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。在面向?qū)ο蟮能浖夹g(shù)中,繼承是子類(lèi)自動(dòng)地共享基類(lèi)中定義的數(shù)據(jù)和方法的機(jī)制。

      多態(tài)性:是指子類(lèi)對(duì)象可以像父類(lèi)對(duì)象那樣使用,同樣的消息既可以發(fā)送給父類(lèi)對(duì)象也可以發(fā)送給子類(lèi)對(duì)象。

      動(dòng)態(tài)聯(lián)編:虛函數(shù)機(jī)制使得程序員能在一個(gè)類(lèi)等級(jí)中使用相同函數(shù)的多個(gè)不同版本,在運(yùn)行時(shí)刻才根據(jù)接收消息的對(duì)象所屬于的類(lèi),決定到底執(zhí)行哪個(gè)特定的版本,這稱(chēng)為動(dòng)態(tài)聯(lián)編,也叫滯后聯(lián)編。

      函數(shù)重載:是指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。運(yùn)算符重載:是指同一個(gè)遠(yuǎn)算符可以施加于不同類(lèi)型的操作數(shù)上面。

      模型:就是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物的一種無(wú)歧義的書(shū)面描述。建模的目的主要是為了減少?gòu)?fù)雜性。

      用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)軟件,通常需要建立3種形式的模型,它們分別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型,描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型和描述系統(tǒng)功能的功能模型。對(duì)象模型始終都是最重要、最基本、最核心的。

      為類(lèi)命名時(shí)應(yīng)該遵守以下幾條準(zhǔn)則:1.使用標(biāo)準(zhǔn)屬于 2.使用具有確切含義的名詞 3.必要時(shí)用名詞短語(yǔ)做名字 動(dòng)態(tài)模型:表示瞬時(shí)的、行為化的系統(tǒng)的“控制”性質(zhì),它規(guī)定了對(duì)象模型中的對(duì)象的合法變化序列。所謂狀態(tài),是對(duì)對(duì)象屬性值的一種抽象。

      功能模型:表示變化的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應(yīng)該“做什么”,因此更直接地反映了用戶(hù)對(duì)目標(biāo)系統(tǒng)的需求。

      功能模型指明了系統(tǒng)應(yīng)該“做什么”;動(dòng)態(tài)模型明確規(guī)定了什么時(shí)候做;對(duì)象模型則定義了做事情的實(shí)體。

      統(tǒng)一建模語(yǔ)言UML是國(guó)際對(duì)象管理組織OMG批準(zhǔn)的基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語(yǔ)言。通常,使用UML的類(lèi)圖來(lái)建立對(duì)象模型,使用UML的狀態(tài)圖來(lái)建立動(dòng)態(tài)模型,使用數(shù)據(jù)流圖或UML的用例圖來(lái)建立功能模型。

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

      分析就是提取系統(tǒng)需求并建立問(wèn)題域精確模型的過(guò)程,它包括理解、表達(dá)和驗(yàn)證3項(xiàng)主要工作內(nèi)容。

      分析過(guò)程得出的最重要的文檔資料是軟件需求規(guī)格說(shuō)明(在面向?qū)ο蠓治鲋?,主要由?duì)象模型、動(dòng)態(tài)模型和功能模型組成)。

      面向?qū)ο蠓治觯壕褪浅槿『驼碛脩?hù)需求并建立問(wèn)題域精確模型的過(guò)程。

      面向?qū)ο蠼5玫降哪P桶到y(tǒng)的3個(gè)要素:即靜態(tài)結(jié)構(gòu)(對(duì)象模型)、交互次序(動(dòng)態(tài)模型)和數(shù)據(jù)變換(功能模型)。

      復(fù)雜問(wèn)題的對(duì)象模型通常由下述5個(gè)層次組成:主體層、類(lèi)與對(duì)象層、結(jié)構(gòu)層、屬性層和服務(wù)層。

      上述5個(gè)層次對(duì)應(yīng)著在面向?qū)ο蠓治鲞^(guò)程中建立對(duì)戲那個(gè)模型的5項(xiàng)主要活動(dòng):找出類(lèi)與對(duì)象,識(shí)別結(jié)構(gòu),識(shí)別主題,定義屬性,定義服務(wù)。

      在概念上可以認(rèn)為,面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行:尋找類(lèi)與對(duì)象,識(shí)別結(jié)構(gòu),識(shí)別主題,定義屬性,建立動(dòng)態(tài)模型,建立功能模型,定義服務(wù)。

      需求陳述應(yīng)該闡明“做什么”而不是“怎樣做”。它應(yīng)該描述用戶(hù)的需求而不是提出解決問(wèn)題的方法。絕大多數(shù)需求陳述都是有二義性的、不完整的、甚至不一致的。

      對(duì)象模型描述了現(xiàn)實(shí)世界中的“類(lèi)與對(duì)象”以及它們之間的關(guān)系,表示了目標(biāo)系統(tǒng)的靜態(tài)結(jié)構(gòu)。對(duì)象是對(duì)問(wèn)題域中有意義的事物的抽象,它們既可能是物理實(shí)體,也可能是抽象概念。關(guān)聯(lián):兩個(gè)或多個(gè)對(duì)象之間的相互依賴(lài)、相互作用的關(guān)系就是關(guān)聯(lián)。一般說(shuō)來(lái),可以使用兩種方式建立繼承關(guān)系:

      1)自底向上:抽象出現(xiàn)有類(lèi)的共同性質(zhì)泛化出父類(lèi),這個(gè)過(guò)程實(shí)質(zhì)上模擬了人類(lèi)歸納思維過(guò)程。2)自頂向下:把現(xiàn)有類(lèi)細(xì)化成更具體的子類(lèi),這模擬了人類(lèi)的演繹思維過(guò)程。建立動(dòng)態(tài)模型:

      第一步,是編寫(xiě)典型交互行為的腳本。

      第二步,從腳本中提取出事件,確定觸發(fā)每個(gè)事件的動(dòng)作對(duì)象以及接受時(shí)間的目標(biāo)對(duì)象。

      第三步,排列事件發(fā)生的次序,確定每個(gè)對(duì)象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們。最后,比較各個(gè)對(duì)象的狀態(tài)圖,檢查它們之間的一致性,確保事件之間的匹配。腳本:是指系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件。

      編寫(xiě)腳本的目的:是保證不遺漏重要的交互步驟,它有助于確保整個(gè)交互過(guò)程的正確性和清晰性。

      功能模型:表明了系統(tǒng)中數(shù)據(jù)之間的依賴(lài)關(guān)系,以及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖組成。其中的處理功能可以用IPO圖(或表)、偽碼等多種方式進(jìn)一步描述。通常在建立了對(duì)象模型和動(dòng)態(tài)模型之后再建立功能模型。

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

      設(shè)計(jì)則是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的系統(tǒng)實(shí)現(xiàn)方案的過(guò)程。面向?qū)ο蟮脑O(shè)計(jì)就是用面向?qū)ο笥^點(diǎn)建立求解域模型的過(guò)程??梢园衙嫦?qū)ο笤O(shè)計(jì)再細(xì)分為系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)。系統(tǒng)設(shè)計(jì):確定實(shí)現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)。

      對(duì)象設(shè)計(jì):確定解空間中的類(lèi)、關(guān)聯(lián)、接口形成及實(shí)現(xiàn)服務(wù)的算法。

      面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則:模塊化、抽象、信息隱藏、弱耦合、強(qiáng)內(nèi)聚、可重用。

      耦合:是指一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連的緊密程度。包括交互耦合和繼承耦合。

      內(nèi)聚:衡量一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。包括服務(wù)內(nèi)聚、類(lèi)內(nèi)聚、一般-特殊內(nèi)聚。軟件重用:是提高軟件開(kāi)發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。

      重用有兩方面的含義:一是盡量使用已有的類(lèi),二是如果確定需要?jiǎng)?chuàng)建新類(lèi),則在設(shè)計(jì)這些新類(lèi)的協(xié)議時(shí),應(yīng)該考慮將來(lái)的可重復(fù)使用性。

      重用也叫再用或復(fù)用,是指同一事物不做修改或稍加改動(dòng)就多次重復(fù)使用。

      廣義地說(shuō),軟件重用可分為以下3個(gè)層次:1)知識(shí)重用

      2)方法和標(biāo)準(zhǔn)的重用

      3)軟件成分的重用 軟件成分的重用級(jí)別:1.代碼重用

      2.設(shè)計(jì)結(jié)果重用 3.分析結(jié)果重用

      類(lèi)構(gòu)件:面向?qū)ο蠹夹g(shù)中的“類(lèi)”,是比較理想的可重用軟構(gòu)件,稱(chēng)為類(lèi)構(gòu)件。可重用軟構(gòu)件應(yīng)該具備的特點(diǎn):1.模塊獨(dú)立性強(qiáng)

      2.具有高度可塑性

      3.接口清晰、簡(jiǎn)明、可靠 類(lèi)構(gòu)件的重用方式:1.實(shí)例重用

      2.繼承重用

      3.多態(tài)重用

      大多數(shù)系統(tǒng)的面向?qū)ο笤O(shè)計(jì)模型,在邏輯上都由4大部分組成。這4大部分對(duì)應(yīng)于組成目標(biāo)系統(tǒng)的4個(gè)子系統(tǒng),它們分別是問(wèn)題域子系統(tǒng)、人機(jī)交互子系統(tǒng)、任務(wù)管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。

      在軟件系統(tǒng)中,子系統(tǒng)之間的交互有兩種可能的方式,分別是客戶(hù)-供應(yīng)商關(guān)系(應(yīng)盡量使用)和平等伙伴關(guān)系。把子系統(tǒng)組織成完整的系統(tǒng)時(shí),有水平層次組織(封閉式和開(kāi)放式)和垂直塊組織兩種方案可供選擇。

      設(shè)計(jì)任務(wù)管理子系統(tǒng)時(shí)常見(jiàn)的任務(wù)有:事件驅(qū)動(dòng)型任務(wù)、時(shí)鐘驅(qū)動(dòng)型任務(wù)、優(yōu)先任務(wù)、關(guān)鍵任務(wù)和協(xié)調(diào)任務(wù)。

      數(shù)據(jù)管理子系統(tǒng):是系統(tǒng)存儲(chǔ)或檢索對(duì)象的基本設(shè)施,它建立在某種數(shù)據(jù)存儲(chǔ)管理系統(tǒng)之上,并且隔離了數(shù)據(jù)存儲(chǔ)管理模式的影響。

      數(shù)據(jù)存儲(chǔ)管理模式:1.文件管理系統(tǒng):是操作系統(tǒng)的一個(gè)組成部分,使用它長(zhǎng)期保存數(shù)據(jù)具有成本低和簡(jiǎn)單等特點(diǎn)。

      2.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),優(yōu)點(diǎn):1)提供了各種最基本的數(shù)據(jù)管理功能。

      2)為多種應(yīng)用提供了一致的接口。

      3)標(biāo)準(zhǔn)化的語(yǔ)言。

      3.面向?qū)ο蟮臄?shù)據(jù)庫(kù)管理系統(tǒng)。

      第十二章、面向?qū)ο髮?shí)現(xiàn)

      面向?qū)ο蟮膶?shí)現(xiàn)主要包括兩項(xiàng)工作:把面向?qū)ο笤O(shè)計(jì)結(jié)果翻譯成用某種程序語(yǔ)言書(shū)寫(xiě)的面向?qū)ο蟪绦?;測(cè)試并調(diào)試面向?qū)ο蟮某绦颉?/p>

      面向?qū)ο鬁y(cè)試的目標(biāo):也是用盡可能低的測(cè)試成本發(fā)現(xiàn)盡可能多的軟件錯(cuò)誤。

      面向?qū)ο笳Z(yǔ)言的技術(shù)特點(diǎn):1.支持類(lèi)與對(duì)象概念的機(jī)制 2.實(shí)現(xiàn)整體-部分結(jié)構(gòu)的機(jī)制 3.實(shí)現(xiàn)一般-特殊結(jié)構(gòu)的機(jī)制 4.實(shí)現(xiàn)屬性和服務(wù)的機(jī)制(動(dòng)態(tài)聯(lián)編)5.類(lèi)型檢查 6類(lèi)庫(kù) 7.效率 8.持久保存對(duì)象 9.參數(shù)化類(lèi) 10.開(kāi)發(fā)環(huán)境

      所謂動(dòng)態(tài)聯(lián)編:是指應(yīng)用系統(tǒng)在運(yùn)行過(guò)程中,當(dāng)需要執(zhí)行一個(gè)特定服務(wù)的時(shí)候,選擇實(shí)現(xiàn)該服務(wù)的適當(dāng)算法的能力。為適應(yīng)面向?qū)ο蠓椒ㄋ赜械母拍疃仨氉裱囊恍┬聹?zhǔn)則:提高可重用性、提高可擴(kuò)充性、提高健壯性。測(cè)試軟件的經(jīng)典策略是,從“小型測(cè)試”開(kāi)始,逐步過(guò)渡到“大型測(cè)試”。測(cè)試策略:面向?qū)ο蟮膯卧獪y(cè)試、面向?qū)ο蟮募蓽y(cè)試、面向?qū)ο蟮拇_認(rèn)測(cè)試。

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

      度量軟件規(guī)模的常用技術(shù)主要有:代碼行技術(shù)和功能點(diǎn)技術(shù)。根據(jù)軟件規(guī)??梢怨浪愠鐾瓿稍擁?xiàng)目所需的工作量,常用的估算模型為靜態(tài)單變量模型、動(dòng)態(tài)多變量模型和COCOMO2模型。

      軟件質(zhì)量保證措施主要有基于非執(zhí)行的測(cè)試、基于執(zhí)行的測(cè)試和程序正確性證明。

      軟件配置管理是應(yīng)用于整個(gè)軟件過(guò)程中的保護(hù)性活動(dòng),是在軟件整個(gè)生命期內(nèi)管理變化的一組活動(dòng)。

      軟件配置管理的目的是,使變化能夠更正確且更容易被適應(yīng),在需要修改軟件時(shí)減少為此而花費(fèi)的工作量。

      第二篇:《軟件工程導(dǎo)論》講稿

      《軟件工程導(dǎo)論》講稿

      主講教師:楊懷洲 郵箱:hzyang@xsyu.edu.cn

      電話(huà):***

      第1章 軟件工程學(xué)概述

      1.1軟件危機(jī)

      1.1.1軟件危機(jī)的介紹 1.1.2產(chǎn)生軟件危機(jī)的原因

      圖1.1引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)

      1.1.3消除軟件危機(jī)的途徑

      1.2軟件工程

      1.2.1軟件工程的介紹

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

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

      7.在軟件工程領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品

      1.2.2軟件工程的基本原理

      1.用分階段的生命周期計(jì)劃嚴(yán)格管理 2.堅(jiān)持進(jìn)行階段評(píng)審 3.實(shí)行嚴(yán)格的產(chǎn)品控制 4.采用現(xiàn)代程序設(shè)計(jì)技術(shù) 5.結(jié)果應(yīng)能清楚地審查

      6.開(kāi)發(fā)小組的人員應(yīng)該少而精

      7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性

      1.2.3軟件工程方法學(xué)

      1.傳統(tǒng)方法學(xué) 2.面向?qū)ο蠓椒▽W(xué)

      1.3軟件生命周期

      1.問(wèn)題定義 2.可行性研究 3.需求分析 4.總體設(shè)計(jì) 5.詳細(xì)設(shè)計(jì)

      6.編碼和單元測(cè)試 7.綜合測(cè)試 8.軟件維護(hù)

      1.4軟件過(guò)程

      1.4.1瀑布模型

      圖1.2傳統(tǒng)的瀑布模型

      1.階段間具有順序性和依賴(lài)性 2.推遲實(shí)現(xiàn)的觀點(diǎn) 3.質(zhì)量保證的觀點(diǎn)

      圖1.3實(shí)際的瀑布模型

      1.4.2快速原型模型

      圖1.4快速原型模型 1.4.3增量模型

      圖1.5增量模型

      圖1.6風(fēng)險(xiǎn)更大的增量模型

      1.4.4螺旋模型

      圖1.7簡(jiǎn)化的螺旋模型

      圖1.8完整的螺旋模型

      1.4.5噴泉模型

      圖1.9噴泉模型 1.4.6 Rational統(tǒng)一過(guò)程

      1.最佳實(shí)踐

      2.RUP軟件開(kāi)發(fā)生命周期

      圖1.10 RUP軟件開(kāi)發(fā)生命周期

      1.4.7敏捷過(guò)程與極限編程

      1.敏捷過(guò)程 2.極限編程

      圖1.11 XP項(xiàng)目的整體開(kāi)發(fā)過(guò)程

      圖1.12 XP迭代開(kāi)發(fā)過(guò)程

      1.4.8微軟過(guò)程

      1.微軟過(guò)程準(zhǔn)則 2.微軟軟件生命周期

      圖1.13微軟軟件生命周期階段劃分和主要里程碑

      3.微軟過(guò)程模型

      圖1.14微軟過(guò)程的生命周期模型

      第2章 可行性研究

      2.1可行性研究的任務(wù) 2.2可行性研究過(guò)程

      1.復(fù)查系統(tǒng)規(guī)模和目標(biāo) 2.研究目前正在使用的系統(tǒng) 3.導(dǎo)出新系統(tǒng)的高層邏輯模型 4.進(jìn)一步定義問(wèn)題

      5.導(dǎo)出和評(píng)價(jià)供選擇的解法 6.推薦行動(dòng)方針 7.草擬開(kāi)發(fā)計(jì)劃 8.書(shū)寫(xiě)文檔提交審查

      2.3系統(tǒng)流程圖

      2.3.1符號(hào) 2.3.2例子

      圖2.1基本符號(hào)

      圖2.2系統(tǒng)符號(hào)

      圖2.3庫(kù)存清單系統(tǒng)的系統(tǒng)流程圖 2.3.3分層

      2.4數(shù)據(jù)流圖

      2.4.1符號(hào)

      圖2.4數(shù)據(jù)流圖的符號(hào) 2.4.2例子

      圖2.5定貨系統(tǒng)的基本系統(tǒng)模型

      圖2.6定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖

      圖2.7把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖 2.4.3命名

      1.為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名 2.為處理命名

      2.4.4用途

      圖2.8這種劃分自動(dòng)化邊界的方法暗示以

      圖2.9另一種劃分自動(dòng)化邊界的方法建議 2.5數(shù)據(jù)字典

      2.5.1數(shù)據(jù)字典的內(nèi)容

      2.5.2定義數(shù)據(jù)的方法 2.5.3數(shù)據(jù)字典的用途

      2.5.4數(shù)據(jù)字典的實(shí)現(xiàn)

      2.6成本/效益分析

      2.6.1成本估計(jì)

      1.代碼行技術(shù) 2.任務(wù)分解技術(shù)

      3.自動(dòng)估計(jì)成本技術(shù)

      2.6.2成本/效益分析的方法

      1.貨幣的時(shí)間價(jià)值

      2.投資回收期 3.純收入 4.投資回收率

      第3章 需求分析

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

      3.1.1確定對(duì)系統(tǒng)的綜合要求

      1.功能需求 2.性能需求

      3.可靠性和可用性需求 4.出錯(cuò)處理需求 5.接口需求 6.約束 7.逆向需求

      8.將來(lái)可能提出的要求

      3.1.2分析系統(tǒng)的數(shù)據(jù)要求 3.1.3導(dǎo)出系統(tǒng)的邏輯模型 3.1.4修正系統(tǒng)開(kāi)發(fā)計(jì)劃

      3.2與用戶(hù)溝通獲取需求的方法

      3.2.1訪(fǎng)談

      3.2.2面向數(shù)據(jù)流自頂向下求精

      圖3.1面向數(shù)據(jù)流自頂向下求精過(guò)程 3.2.3簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù) 3.2.4快速建立軟件原型

      3.3分析建模與規(guī)格說(shuō)明

      3.3.1分析建模 3.3.2軟件需求規(guī)格說(shuō)明

      3.4實(shí)體聯(lián)系圖

      3.4.1數(shù)據(jù)對(duì)象 3.4.2屬性 3.4.3聯(lián)系

      圖3.2某校教學(xué)管理ER圖 3.4.4實(shí)體聯(lián)系圖的符號(hào)

      3.5數(shù)據(jù)規(guī)范化

      3.6狀態(tài)轉(zhuǎn)換圖

      3.6.1狀態(tài)

      3.6.2事件

      3.6.3符號(hào)

      圖3.3狀態(tài)圖中使用的主要符號(hào)

      3.6.4例子

      圖3.4電話(huà)系統(tǒng)的狀態(tài)圖 3.7其他圖形工具

      3.7.1層次方框圖

      圖3.5層次方框圖的一個(gè)例子

      3.7.2 Warnier圖

      圖3.6 Warnier圖的一個(gè)例子

      3.7.3 IPO圖

      圖3.7 IPO圖的一個(gè)例子

      圖3.8改進(jìn)的IPO圖的形式

      3.8驗(yàn)證軟件需求

      3.8.1從哪些方面驗(yàn)證軟件需求的正確性 3.8.2驗(yàn)證軟件需求的方法

      1.驗(yàn)證需求的一致性 2.驗(yàn)證需求的現(xiàn)實(shí)性

      3.驗(yàn)證需求的完整性和有效性

      3.8.3用于需求分析的軟件工具 第4章 形式化說(shuō)明技術(shù)

      4.1概述

      4.1.1非形式化方法的缺點(diǎn) 4.1.2形式化方法的優(yōu)點(diǎn) 4.1.3應(yīng)用形式化方法的準(zhǔn)則

      4.2有窮狀態(tài)機(jī)

      4.2.1概念

      圖4.1保險(xiǎn)箱的狀態(tài)轉(zhuǎn)換圖

      4.2.2例子

      圖4.2電梯按鈕的狀態(tài)轉(zhuǎn)換圖

      圖4.3樓層按鈕的狀態(tài)轉(zhuǎn)換圖

      圖4.4電梯的狀態(tài)轉(zhuǎn)換圖

      4.2.3評(píng)價(jià)

      4.3 Petri網(wǎng)

      4.3.1概念

      圖4.5 Petri網(wǎng)的組成

      圖4.6帶標(biāo)記的Petri網(wǎng)

      4.3.2例子

      1.電梯按鈕

      2.樓層按鈕

      圖4.7圖4.6的Petri網(wǎng)在轉(zhuǎn)換t1被激發(fā)后的情況

      圖4.8圖4.7的Petri網(wǎng)在轉(zhuǎn)換t2被激發(fā)后的情況

      圖4.9含禁止線(xiàn)的Petri網(wǎng)

      圖4.10 Petri網(wǎng)表示的電梯按鈕

      4.4 Z語(yǔ)言4.4.1簡(jiǎn)介

      1.給定的集合 2.狀態(tài)定義

      3.初始狀態(tài) 4.操作

      圖4.11Petri網(wǎng)表示樓層按鈕

      圖4.12Z格S的格式

      圖4.13Z格Button_State

      圖4.14操作Push_Button的Z規(guī)格說(shuō)明

      圖4.15操作Floor_Arrival的Z規(guī)格說(shuō)明

      4.4.2評(píng)價(jià)

      第5章 總體設(shè)計(jì)

      5.1設(shè)計(jì)過(guò)程

      1.設(shè)想供選擇的方案 2.選取合理的方案 3.推薦最佳方案 4.功能分解 5.設(shè)計(jì)軟件結(jié)構(gòu) 6.設(shè)計(jì)數(shù)據(jù)庫(kù) 7.制定測(cè)試計(jì)劃 8.書(shū)寫(xiě)文檔 9.審查和復(fù)審

      5.2設(shè)計(jì)原理

      5.2.1模塊化

      圖5.1模塊化和軟件成本

      5.2.2抽象 5.2.3逐步求精 5.2.4信息隱藏和局部化 5.2.5模塊獨(dú)立

      1.耦合 2.內(nèi)聚

      5.3啟發(fā)規(guī)則

      1.改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性 2.模塊規(guī)模應(yīng)該適中

      3.深度、寬度、扇出和扇入都應(yīng)適當(dāng) 4.模塊的作用域應(yīng)該在控制域之內(nèi)

      圖5.2模塊的作用域和控制域

      5.力爭(zhēng)降低模塊接口的復(fù)雜程度 6.設(shè)計(jì)單入口單出口的模塊 7.模塊功能應(yīng)該可以預(yù)測(cè)

      5.4描繪軟件結(jié)構(gòu)的圖形工具

      5.4.1層次圖和HIPO圖

      圖5.3正文加工系統(tǒng)的層次圖

      圖5.4帶編號(hào)的層次圖(H圖)5.4.2結(jié)構(gòu)圖

      圖5.5結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)

      圖5.6判定為真時(shí)調(diào)用A,為假時(shí)調(diào)用B

      圖5.7模塊M循環(huán)調(diào)用模塊A、B、C 5.5面向數(shù)據(jù)流的設(shè)計(jì)方法

      5.5.1概念

      1.變換流 2.事務(wù)流

      3.設(shè)計(jì)過(guò)程

      圖5.8變換流

      圖5.9事務(wù)流

      圖5.10面向數(shù)據(jù)流方法的設(shè)計(jì)過(guò)程

      5.5.2變換分析

      1.例子 2.設(shè)計(jì)步驟

      圖5.11數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖

      圖5.12具有邊界的數(shù)據(jù)流圖

      圖5.13第一級(jí)分解的方法

      圖5.14數(shù)字儀表板系統(tǒng)的第一級(jí)分解

      圖5.15第二級(jí)分解的方法

      圖5.16未經(jīng)精化的輸入結(jié)構(gòu)

      圖5.17未經(jīng)精化的變換結(jié)構(gòu)

      圖5.18未經(jīng)精化的輸出結(jié)構(gòu)

      圖5.19精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)

      5.5.3事務(wù)分析

      圖5.20事務(wù)分析的映射方法

      5.5.4設(shè)計(jì)優(yōu)化

      第6章 詳細(xì)設(shè)計(jì)

      6.1結(jié)構(gòu)程序設(shè)計(jì)

      圖6.1 3種基本的控制結(jié)構(gòu)

      圖6.2其他常用的控制結(jié)構(gòu)

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

      6.2.1設(shè)計(jì)問(wèn)題

      1.系統(tǒng)響應(yīng)時(shí)間 2.用戶(hù)幫助設(shè)施 3.出錯(cuò)信息處理 4.命令交互 6.2.2設(shè)計(jì)過(guò)程 6.2.3人機(jī)界面設(shè)計(jì)指南

      1.一般交互指南 2.信息顯示指南 3.數(shù)據(jù)輸入指南

      6.3過(guò)程設(shè)計(jì)的工具

      6.3.1程序流程圖 6.3.2盒圖

      圖6.3程序流程圖中使用的符號(hào)

      圖6.4盒圖的基本符號(hào)

      6.3.3PAD圖

      圖6.5PAD圖的基本符號(hào)

      圖6.6使用PAD圖提供的定義功能來(lái)逐步求精的例子 6.3.4判定表

      6.3.5判定樹(shù) 6.3.6過(guò)程設(shè)計(jì)語(yǔ)言

      圖6.7用判定樹(shù)表示計(jì)算行李費(fèi)的算法 6.4面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法

      6.4.1Jackson圖

      1.順序結(jié)構(gòu) 2.選擇結(jié)構(gòu)

      圖6.8A由B、C、D 3個(gè)元素順序組成

      圖6.9根據(jù)條件A是B或C或D中的某一個(gè)

      3.重復(fù)結(jié)構(gòu)

      圖6.10A由B出現(xiàn)N次(N≥0)組成

      6.4.2改進(jìn)的Jackson圖

      圖6.11改進(jìn)的Jackson圖 6.4.3Jackson方法

      圖6.12表示輸入輸出數(shù)據(jù)結(jié)構(gòu)的Jackson圖

      圖6.13描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的Jackson圖

      圖6.14把操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置

      6.5程序復(fù)雜程度的定量度量

      6.5.1McCabe方法

      1.流圖

      圖6.15把程序流程圖映射成流圖

      圖6.16由PDL翻譯成的流圖

      圖6.17由包含復(fù)合條件的PDL映射成的流圖

      2.計(jì)算環(huán)形復(fù)雜度的方法 3.環(huán)形復(fù)雜度的用途

      6.5.2 Halstead方法

      6.6小結(jié)

      第7章 實(shí)現(xiàn)

      7.1編碼

      7.1.1選擇程序設(shè)計(jì)語(yǔ)言 7.1.2編碼風(fēng)格

      1.程序內(nèi)部的文檔 2.數(shù)據(jù)說(shuō)明 3.語(yǔ)句構(gòu)造 4.輸入輸出 5.效率

      7.2軟件測(cè)試基礎(chǔ)

      7.2.1軟件測(cè)試的目標(biāo) 7.2.2軟件測(cè)試準(zhǔn)則 7.2.3測(cè)試方法 7.2.4測(cè)試步驟

      1.模塊測(cè)試 2.子系統(tǒng)測(cè)試 3.系統(tǒng)測(cè)試 4.驗(yàn)收測(cè)試 5.平行運(yùn)行 7.2.5測(cè)試階段的信息流

      圖7.1測(cè)試階段的信息流

      7.3單元測(cè)試

      7.3.1測(cè)試重點(diǎn)

      1.模塊接口 2.局部數(shù)據(jù)結(jié)構(gòu) 3.重要的執(zhí)行通路 4.出錯(cuò)處理通路 5.邊界條件

      7.3.2代碼審查 7.3.3計(jì)算機(jī)測(cè)試

      圖7.2正文加工系統(tǒng)的層次圖 7.4集成測(cè)試

      7.4.1自頂向下集成

      圖7.3自頂向下結(jié)合

      7.4.2自底向上集成

      圖7.4自底向上結(jié)合 7.4.3不同集成測(cè)試策略的比較 7.4.4回歸測(cè)試

      7.5確認(rèn)測(cè)試

      7.5.1確認(rèn)測(cè)試的范圍 7.5.2軟件配置復(fù)查 7.5.3Alpha和Beta測(cè)試

      7.6白盒測(cè)試技術(shù)

      7.6.1邏輯覆蓋

      1.語(yǔ)句覆蓋

      圖7.5被測(cè)試模塊的流程圖

      2.判定覆蓋 3.條件覆蓋

      4.判定/條件覆蓋 5.條件組合覆蓋 6.點(diǎn)覆蓋 7.邊覆蓋 8.路徑覆蓋 7.6.2控制結(jié)構(gòu)測(cè)試

      1.基本路徑測(cè)試

      圖7.6求平均值過(guò)程的流圖

      2.條件測(cè)試 3.循環(huán)測(cè)試

      圖7.73種循環(huán) 7.7黑盒測(cè)試技術(shù)

      7.7.1等價(jià)劃分

      7.7.2邊界值分析 7.7.3錯(cuò)誤推測(cè)

      7.8調(diào)試 7.8.1調(diào)試過(guò)程

      圖7.8調(diào)試過(guò)程

      7.8.2調(diào)試途徑

      1.蠻干法 2.回溯法 3.原因排除法

      7.9軟件可靠性

      7.9.1基本概念

      1.軟件可靠性的定義 2.軟件的可用性

      7.9.2估算平均無(wú)故障時(shí)間的方法

      1.符號(hào) 2.基本假定

      3.估算平均無(wú)故障時(shí)間 4.估計(jì)錯(cuò)誤總數(shù)的方法

      第8章 維護(hù)

      8.1軟件維護(hù)的定義 8.2軟件維護(hù)的特點(diǎn)

      8.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大

      1.非結(jié)構(gòu)化維護(hù) 2.結(jié)構(gòu)化維護(hù)

      8.2.2維護(hù)的代價(jià)高昂 8.2.3維護(hù)的問(wèn)題很多

      8.3軟件維護(hù)過(guò)程

      1.維護(hù)組織 2.維護(hù)報(bào)告 3.維護(hù)的事件流

      圖8.1維護(hù)階段的事件流

      4.保存維護(hù)記錄 5.評(píng)價(jià)維護(hù)活動(dòng)

      8.4軟件的可維護(hù)性

      8.4.1決定軟件可維護(hù)性的因素

      1.可理解性

      2.可測(cè)試性

      3.可修改性

      4.可移植性

      5.可重用性

      8.4.2文檔

      1.用戶(hù)文檔 2.系統(tǒng)文檔

      8.4.3可維護(hù)性復(fù)審

      8.5預(yù)防性維護(hù) 8.6軟件再工程過(guò)程

      圖8.2軟件再工程過(guò)程模型

      1.庫(kù)存目錄分析 2.文檔重構(gòu) 3.逆向工程 4.代碼重構(gòu) 5.數(shù)據(jù)重構(gòu) 6.正向工程 第9章 面向?qū)ο蠓椒▽W(xué)引論

      9.1面向?qū)ο蠓椒▽W(xué)概述

      9.1.1面向?qū)ο蠓椒▽W(xué)的要點(diǎn) 9.1.2面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)

      1.與人類(lèi)習(xí)慣的思維方法一致 2.穩(wěn)定性好 3.可重用性好

      4.較易開(kāi)發(fā)大型軟件產(chǎn)品 5.可維護(hù)性好

      9.2面向?qū)ο蟮母拍?/p>

      9.2.1對(duì)象

      1.對(duì)象的形象表示

      圖9.1對(duì)象的形象表示

      2.對(duì)象的定義

      圖9.2用自動(dòng)機(jī)模擬對(duì)象

      3.對(duì)象的特點(diǎn) 9.2.2其他概念

      1.類(lèi)(class)2.實(shí)例(instance)3.消息(message)4.方法(method)5.屬性(attribute)6.封裝(encapsulation)7.繼承(inheritance)

      圖9.3實(shí)現(xiàn)繼承機(jī)制的原理

      8.多態(tài)性(polymorphism)9.重載(overloading)9.3面向?qū)ο蠼?9.4對(duì)象模型

      9.4.1類(lèi)圖的基本符號(hào)

      1.定義類(lèi)

      圖9.4表示類(lèi)的圖形符號(hào)

      2.定義屬性 3.定義服務(wù)

      9.4.2表示關(guān)系的符號(hào)

      1.關(guān)聯(lián)

      圖9.5普通關(guān)聯(lián)示例

      第三篇:卷-軟件工程導(dǎo)論

      21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號(hào)表示系統(tǒng)中各個(gè)元素表達(dá)了系統(tǒng)中各種元素之間的(信息流動(dòng))情況。

      [解析]系統(tǒng)流程圖是描述物理系統(tǒng)的傳統(tǒng)工具,用圖形符號(hào)表示系統(tǒng)中的各個(gè)元素,如人工處理、數(shù)據(jù)處理、數(shù)據(jù)庫(kù)、文件、設(shè)備等,表達(dá)了元素之間的信息流動(dòng)的情況。22.成本效益分析的目的是從(經(jīng)濟(jì))角度評(píng)價(jià)開(kāi)發(fā)一個(gè)項(xiàng)目是否可行。[解析]成本效益分析首先是估算將要開(kāi)發(fā)的系統(tǒng)的開(kāi)發(fā)成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡,其目的是從經(jīng)濟(jì)角度評(píng)價(jià)開(kāi)發(fā)一個(gè)新的軟件項(xiàng)目是否可行。

      23.自頂向下結(jié)合的漸增式測(cè)試法,在組合模塊時(shí)有兩種組合策略:深度優(yōu)先策略和(寬度優(yōu)先策略)。

      [解析]漸增式測(cè)試法有自頂向下結(jié)合和自底向上結(jié)合兩種組裝模塊的方法,其中自頂向下集成是構(gòu)造程序結(jié)構(gòu)的一種增量式方式,不需要編寫(xiě)驅(qū)動(dòng)模塊,只需要編寫(xiě)樁模塊。它從主控模塊開(kāi)始,按照軟件的控制層次結(jié)構(gòu),以深度優(yōu)先或?qū)挾葍?yōu)先的策略,逐步把各個(gè)模塊集成在一起。

      24.獨(dú)立路徑是指包括一組以前沒(méi)有處理的語(yǔ)句或條件的一條路徑。從程序圖來(lái)看,一條獨(dú)立路徑是至少包含有一條(在其他獨(dú)立路徑中未有過(guò))的邊的路徑。[解析]在基本路徑測(cè)試中,以詳細(xì)設(shè)計(jì)或源程序?yàn)榛A(chǔ),導(dǎo)出控制流程圖的拓?fù)浣Y(jié)構(gòu)——程序圖,在計(jì)算了程序圖的環(huán)路復(fù)雜性之后,確定只包含獨(dú)立路徑的基本路徑圖,其中獨(dú)立路徑是包括一組以前沒(méi)有處理的語(yǔ)句或條件的一條路徑。從程序圖來(lái)看,一條獨(dú)立路徑是至少包含有一條在其他獨(dú)立路徑中未有過(guò)的邊的路徑。

      25.匯編語(yǔ)言是面向(機(jī)器)的,可以完成高級(jí)語(yǔ)言無(wú)法完成的特殊功能,如與外部設(shè)備之間的一些接口工作。

      [解析]匯編語(yǔ)言屬于低級(jí)語(yǔ)言,是一種面向機(jī)器的語(yǔ)言,它與高級(jí)語(yǔ)言相比有許多優(yōu)越性:如操作靈活,可以直接作用到硬件的最下層,完成與外部設(shè)備的接口工作等,是能夠利用計(jì)算機(jī)硬件特性直接控制硬件設(shè)備的唯一語(yǔ)言。

      26.在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是(中間數(shù)據(jù)結(jié)構(gòu)或中間文件)。

      [解析]JSP方法是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。它定義了一組以數(shù)據(jù)結(jié)構(gòu)為指導(dǎo)的映射過(guò)程,根據(jù)輸入、輸出的數(shù)據(jù)結(jié)構(gòu),按一定的規(guī)則映射成軟件的過(guò)程描述,在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件,將沖突部分分隔開(kāi)來(lái),建立多個(gè)程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來(lái),構(gòu)成一個(gè)系統(tǒng)的整體。

      27.詳細(xì)設(shè)計(jì)的任務(wù)是確定每個(gè)模塊的內(nèi)部特性,即模塊的算法、(使用的數(shù)據(jù))。[解析]詳細(xì)設(shè)計(jì)的基本任務(wù)是為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì),為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),確定每個(gè)模塊的內(nèi)部特性,包括模塊的算法和使用的數(shù)據(jù)。對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理設(shè)計(jì)等。28.所有軟件維護(hù)申請(qǐng)報(bào)告要按規(guī)定方式提出,該報(bào)告也稱(chēng)(軟件問(wèn)題)報(bào)告。[解析]在軟件維護(hù)的流程中,第一步就是制定維護(hù)申請(qǐng)報(bào)告,也稱(chēng)為軟件問(wèn)題報(bào)告,它是維護(hù)階段的一種文檔,由申請(qǐng)維護(hù)的用戶(hù)填寫(xiě)。

      29.有兩類(lèi)維護(hù)技術(shù):在開(kāi)發(fā)階段使用來(lái)減少錯(cuò)誤、提高軟件可維護(hù)性的面向維護(hù)的技術(shù);在維護(hù)階段用來(lái)提高維護(hù)的效率和質(zhì)量的(維護(hù)支援)技術(shù)。[解析]面向維護(hù)的技術(shù)涉及軟件開(kāi)發(fā)的所有階段,能夠減少軟件錯(cuò)誤,提高軟件的可維護(hù)性。而維護(hù)支援技術(shù)則包含信息收集,錯(cuò)誤原因分析,維護(hù)方案評(píng)價(jià)等項(xiàng),是在軟件維護(hù)階段用來(lái)提高維護(hù)效率和質(zhì)量的技術(shù)。

      30.科學(xué)工程計(jì)算需要大量的標(biāo)準(zhǔn)庫(kù)函數(shù),以便處理復(fù)雜的數(shù)值計(jì)算,可供選擇的語(yǔ)言有:(FORTRAN語(yǔ)言)、PASCAL語(yǔ)言、C語(yǔ)言和PL/1語(yǔ)言。

      [解析]計(jì)算機(jī)語(yǔ)言根據(jù)不同行業(yè)的需求,使用的側(cè)重點(diǎn)也不盡相同,在辦公管理方面,一些數(shù)據(jù)庫(kù)語(yǔ)言如FOXPRO、ORICAL有很多的應(yīng)用,在工程行業(yè),計(jì)算機(jī)語(yǔ)言的科學(xué)計(jì)算能力就顯得格外重要,如MATLAB、PL/

      1、FORTRAN語(yǔ)言都是工程計(jì)算中常用的語(yǔ)言。

      解:投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初的投資費(fèi)用所需的時(shí)間。[解析]通常我們用投資回收期來(lái)衡量一個(gè)開(kāi)發(fā)項(xiàng)目的價(jià)值,投資回收期越短,就越快獲得利潤(rùn)。34.對(duì)應(yīng)關(guān)系

      解:即有直接因果關(guān)系在程序中可以同時(shí)處理。[解析]對(duì)應(yīng)關(guān)系是指數(shù)據(jù)單元在數(shù)據(jù)內(nèi)容上、數(shù)量上和順序上有直接的因果關(guān)系,對(duì)于重復(fù)的數(shù)據(jù)單元,重復(fù)的次序和次數(shù)都相同才有對(duì)應(yīng)關(guān)系。35.結(jié)構(gòu)沖突

      解:輸入數(shù)據(jù)與輸出數(shù)據(jù)結(jié)構(gòu)找不到對(duì)應(yīng)關(guān)系的情況,稱(chēng)為結(jié)構(gòu)沖突。

      [解析]使用JSP方法時(shí)會(huì)遇到此類(lèi)結(jié)構(gòu)沖突問(wèn)題,對(duì)此,Jackson提出了引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件的辦法,將沖突部分分隔開(kāi)來(lái),建立多個(gè)程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來(lái),構(gòu)成一個(gè)系統(tǒng)的整體。

      40.請(qǐng)使用PAD圖和PDL語(yǔ)言描述在數(shù)組A(1)~A(10)中找最大數(shù)的算法。解:PDL語(yǔ)言: N=1 WHILE N<=10 DO IF A(N)<=A(N+1)MAX =A(N+1);ELSE MAX =A(N)ENDIF;N=N+1;ENDWHILE;PAD圖:

      42.某電器集團(tuán)公司下屬的廠包括技術(shù)科、生產(chǎn)科等基層單位?,F(xiàn)在想建立一個(gè)計(jì)算機(jī)輔助企業(yè)管理系統(tǒng),其中: 生產(chǎn)科的任務(wù)是:

      (1)根據(jù)銷(xiāo)售公司轉(zhuǎn)來(lái)的內(nèi)部合同(產(chǎn)品型號(hào)、規(guī)格、數(shù)量、交獲日期)制定車(chē)間月生產(chǎn)計(jì)劃。

      (2)根據(jù)車(chē)間實(shí)際生產(chǎn)日?qǐng)?bào)表、周報(bào)表調(diào)整月生產(chǎn)計(jì)劃

      (3)以月生產(chǎn)計(jì)劃為以及,制定產(chǎn)品設(shè)計(jì)(結(jié)構(gòu)、工藝)及產(chǎn)品組裝月計(jì)劃。(4)將產(chǎn)品的組裝計(jì)劃傳達(dá)到各科,將組裝月計(jì)劃分解為周計(jì)劃,下達(dá)給車(chē)間 技術(shù)科的任務(wù)是:

      (1)根據(jù)生產(chǎn)科轉(zhuǎn)來(lái)的組裝計(jì)劃進(jìn)行產(chǎn)品結(jié)構(gòu)設(shè)計(jì),產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,產(chǎn)生外購(gòu)需求計(jì)劃給供應(yīng)科,并產(chǎn)生產(chǎn)品自制物料清單。

      (2)根據(jù)組裝計(jì)劃進(jìn)行產(chǎn)品工藝設(shè)計(jì),根據(jù)產(chǎn)品自制物料清單產(chǎn)生工藝流程圖給零件廠。試寫(xiě)出以上系統(tǒng)中生產(chǎn)科和技術(shù)科處理的軟件結(jié)構(gòu)圖。解

      [解析]軟件結(jié)構(gòu)圖是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個(gè)系統(tǒng)的功能實(shí)現(xiàn),即將來(lái)程序的控制層次體系,軟件結(jié)構(gòu)往往用樹(shù)狀或網(wǎng)狀結(jié)構(gòu)的圖形來(lái)表示,其主要內(nèi)容有模塊及模塊的控制關(guān)系,根據(jù)題意,可繪制出生產(chǎn)科和技術(shù)科的軟件結(jié)構(gòu)圖,其中生產(chǎn)科的結(jié)構(gòu)圖深度和寬度均為4,技術(shù)科的結(jié)構(gòu)圖的深度和寬度均為3

      填空題

      1.在信息處理和計(jì)算機(jī)領(lǐng)域內(nèi),一般認(rèn)為軟件是 _程序、_文檔____ 和_數(shù)據(jù)

      2.數(shù)據(jù)流圖的基本組成部分有 數(shù)據(jù)的源點(diǎn)與終點(diǎn)、數(shù)據(jù)流_、加工、數(shù)據(jù)文件。3.數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說(shuō)明書(shū)的主要組成部分。4.劃分模塊時(shí)盡量做到__高內(nèi)聚、低耦合,保持模塊的獨(dú)立性,盡量使用公共模塊。5.類(lèi)的實(shí)例化是_對(duì)象_______。

      6.人們常用硬件可靠性的定量度量方法來(lái)度量軟件的可靠性和可用性,常用的度量軟件可靠性的兩個(gè)指標(biāo)是_成功地運(yùn)行的概率_______和_平均故障時(shí)間_______。8.將待開(kāi)發(fā)的軟件細(xì)化,分別估算每一個(gè)子任務(wù)所需要的開(kāi)發(fā)工作量,然后將它們加起來(lái),將得到軟件的總開(kāi)發(fā)量。這種成本估算方法稱(chēng)為_(kāi)自底向上_______。

      9.如果一個(gè)模塊被 n 個(gè)模塊調(diào)用,其中直接的上級(jí)模塊的個(gè)數(shù)是 m 個(gè)(m<=n)那么該模塊的扇入數(shù)是 ____N_______ 個(gè)。

      10.結(jié)構(gòu)化設(shè)計(jì)以 __數(shù)據(jù)流圖_________ 為基礎(chǔ),按一定的步驟映射成軟件結(jié)構(gòu)。

      11.軟件的風(fēng)險(xiǎn)分析可包括風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)預(yù)測(cè) 和風(fēng)險(xiǎn)駕馭(或風(fēng)險(xiǎn)管理)等3項(xiàng)活動(dòng)。12.軟件著作權(quán)登記的3種主要類(lèi)型:(1)著作權(quán)登記;(2)著作權(quán)延續(xù)登記;(3)權(quán)利轉(zhuǎn)移備案登記。

      13.軟件工程管理的主要內(nèi)容有:項(xiàng)目經(jīng)費(fèi)管理,軟件質(zhì)量管理,項(xiàng)目進(jìn)度管理和人員管理。15.面向?qū)ο蠓治龅哪康氖菍?duì)客觀世界的系統(tǒng)進(jìn)行 ___建模_______________。16.軟件維護(hù)工作的生產(chǎn)性活動(dòng)包括分析評(píng)價(jià)、修改設(shè)計(jì)和 ____編寫(xiě)程序代碼等。17.為了使應(yīng)用軟件適應(yīng)計(jì)算機(jī)環(huán)境的變化而 ___修改軟件的過(guò)程稱(chēng)為適應(yīng)性維護(hù)。18.一個(gè)進(jìn)行學(xué)生成績(jī)統(tǒng)計(jì)的模塊其功能是先對(duì)學(xué)生的成績(jī)進(jìn)行累加,然后求平均值,則該模塊的內(nèi)聚性是 __________順序內(nèi)聚________。

      19.投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于 __最初的投資費(fèi)用_所需的時(shí)間。

      20.軟件生存周期是指一個(gè)軟件從提出開(kāi)發(fā)要求開(kāi)始直到 _軟件廢棄_為止的整個(gè)時(shí)期。21.曾被譽(yù)為“程序設(shè)計(jì)方法的革命”的 結(jié)構(gòu)化 程序設(shè)計(jì),使程序設(shè)計(jì)從主要依賴(lài)于程序員個(gè)人的自由活動(dòng)變成為有章可循的一門(mén)科學(xué)。

      22.從結(jié)構(gòu)化程序設(shè)計(jì)到 面向?qū)ο蟪绦蛟O(shè)計(jì),是程序設(shè)計(jì)方法的又一次飛躍。23.在單元測(cè)試時(shí),需要為被測(cè)模塊設(shè)計(jì)___測(cè)試用例_______。

      三、應(yīng)用題

      1.商店業(yè)務(wù)處理系統(tǒng)的業(yè)務(wù)描述及數(shù)據(jù)流圖如下:

      顧客到商店購(gòu)物時(shí),在經(jīng)過(guò)挑選之后填寫(xiě)了一張訂單,詳細(xì)列出了想要購(gòu)買(mǎi)的物品名稱(chēng)、規(guī)格和數(shù)量等。商店接到訂單后首先查商品庫(kù)存,看是否有足夠的存貨。若有,則出庫(kù)且修改商品庫(kù)存文件,然后給顧客開(kāi)發(fā)貨票,讓顧客交款、給顧客開(kāi)收據(jù)并取貨,最后登記銷(xiāo)售歷史。若存貨不足,則暫存顧客訂單并向采購(gòu)部門(mén)發(fā)出訂貨通知。采購(gòu)部門(mén)根據(jù)商品庫(kù)存和暫存訂單信息向供應(yīng)商訂貨。待接到供應(yīng)商發(fā)來(lái)的相應(yīng)商品時(shí),通知財(cái)務(wù)部門(mén)向供應(yīng)商付款,并向銷(xiāo)售部門(mén)發(fā)出到貨通知,同時(shí),采購(gòu)部門(mén)要修改商品庫(kù)存和暫存訂單信息。當(dāng)銷(xiāo)售部門(mén)接到到貨通知時(shí),應(yīng)通知顧客來(lái)付款取貨。財(cái)務(wù)部門(mén)依據(jù)供應(yīng)商送來(lái)的收據(jù)記賬。

      試求解下列問(wèn)題: 1).針對(duì)處理1,給出該處理的一級(jí)細(xì)化的DFD(要求給出合適的數(shù)據(jù)流與數(shù)據(jù)存儲(chǔ)說(shuō)明); 2).針對(duì)處理2,給出該處理的一級(jí)細(xì)化的DFD(要求給出合適的數(shù)據(jù)流與數(shù)據(jù)存儲(chǔ)說(shuō)明); 3).給出“發(fā)貨單”的DD定義; 4).給出“訂貨單”的DD定義; 5).根據(jù)你對(duì)問(wèn)題的理解,給出“商品庫(kù)存”這個(gè)數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)描述。6).根據(jù)你對(duì)問(wèn)題的理解,給出“銷(xiāo)售歷史”這個(gè)數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)描述。

      第一章:軟件工程學(xué)概述 一.填空題

      1.計(jì)算機(jī)科學(xué)中的研究成果均可用于軟件工程,但計(jì)算機(jī)科學(xué)更側(cè)重于_____________、而 軟件工程側(cè)重于_____________。

      2.計(jì)算機(jī)程序及其說(shuō)明程序的各種文檔稱(chēng)為_(kāi)____________。計(jì)算任務(wù)的處理圖像對(duì)象和處 理規(guī)則的描述稱(chēng)為_(kāi)____________。有關(guān)計(jì)算機(jī)程序功能、設(shè)計(jì)、編制、使用的文字或圖形資

      料稱(chēng)為_(kāi)____________。

      3.軟件開(kāi)發(fā)環(huán)境是相關(guān)一組_____________的集合,它支持一定的軟件開(kāi)發(fā)方法或按照一定 的軟件開(kāi)發(fā)模型組織而成的。

      4.CASE這一術(shù)語(yǔ)的英文是_____________。

      5._____________是指工具運(yùn)行在相同的硬件/操作系統(tǒng)平臺(tái)上。_____________是指工具使 用共享數(shù)據(jù)模型來(lái)操作。_____________是指工具提供相同的用戶(hù)界面。

      6.根據(jù)支持的范圍,CASE工具可分為_(kāi)____________、_____________和_____________工具。

      7.軟件危機(jī)的主要原因有_____________和_____________。8._____________模型是一種非整體開(kāi)發(fā)的模型。軟件在該模型中是“逐漸”開(kāi)發(fā)處理的,開(kāi)發(fā)出一部分,向用戶(hù)展示一部分,可讓用戶(hù)及早看到部分軟件,及早發(fā)現(xiàn)問(wèn)題?;蛘呦乳_(kāi) 發(fā)一個(gè)“原型”軟件,完成部分主要功能,展示給用戶(hù)并征求意見(jiàn),然后逐步完善,最終獲 得滿(mǎn)意的軟件產(chǎn)品。

      9.結(jié)構(gòu)化方法總得指導(dǎo)思想是_____________。它的基本原則是功能的_____________與___ __________。它是軟件工程中最早出現(xiàn)的開(kāi)發(fā)方法,特別適用于數(shù)據(jù)處理領(lǐng)域的問(wèn)題。10.面向?qū)ο箝_(kāi)發(fā)方法包括_____________、_____________、_____________、三部分。11.瀑布模型是將軟件生存周期各個(gè)活動(dòng)規(guī)定為依線(xiàn)性順序連接的若干階段的模型。它包括_____________、項(xiàng)目開(kāi)發(fā)計(jì)劃、_____________、_____________、_____________、_ ____________、_____________、_____________,它規(guī)定了由前至后、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。12.瀑布模型本質(zhì)上是一種_____________順序模型。

      13.構(gòu)造原型時(shí),必須注意_____________取舍,忽略一切暫時(shí)不關(guān)心的部分。

      14.屬性指的是類(lèi)中對(duì)象所具有的_____________。不同對(duì)象的同一屬性可以具有相同或不同 的_____________。

      15.結(jié)構(gòu)化方法和原型化方法是軟件開(kāi)發(fā)中常使用的兩種方法,在實(shí)際的應(yīng)用中,它們之間 的關(guān)系表現(xiàn)為_(kāi)____________。解答: 1.原理和理論、如何建造一個(gè)軟件系統(tǒng) 2.文件、程序、文檔; 3.軟件工具; 4.Computer Aided Software Engineering;5.平臺(tái)集成、數(shù)據(jù)集成、表示集成; 6.窄支持、較寬支持、一般支持; 7.軟件本身的特點(diǎn)、缺乏好的開(kāi)發(fā)方法和手段; 8.增量; 9.自頂而下逐步求精、分解、抽象; 10.面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο髮?shí)現(xiàn); 11.可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、維護(hù); 12.線(xiàn)性; 13.功能性能; 14.性質(zhì)(數(shù)據(jù)值)、屬性值; 15.相互補(bǔ)充;第二章: 可行性研究 一.填空題

      1.數(shù)據(jù)詞典中四種類(lèi)型的條目是_____________、_____________、_____________和加工。2._____________的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定該軟件項(xiàng)目是否能夠開(kāi) 發(fā),是否值得開(kāi)發(fā)。

      3.可行性研究的目的不是去開(kāi)發(fā)一個(gè)軟件項(xiàng)目,而是研究這個(gè)軟件項(xiàng)目是否_____________。

      4.可行性研究實(shí)質(zhì)上是要進(jìn)行一次簡(jiǎn)化、壓縮了的_____________和_____________過(guò)程,要在較高層次上以較抽象的方式進(jìn)行需求分析和設(shè)計(jì)過(guò)程。

      5.可行性研究需要從_____________可行性、_____________可行性、_____________可行性 三個(gè)方面分析研究每種解決方法的可行性。

      6.成本-效益分析首先是估算將要開(kāi)發(fā)的系統(tǒng)的_____________,然后與可能取得的效益進(jìn) 行_____________。

      7.投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初的投資費(fèi)用所需要的時(shí)間。項(xiàng)目的_________ ____是指在整個(gè)生命周期之內(nèi)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之差。8.軟件工程有兩種效益,它們是_____________和_____________。

      9.成本-效益分析的目的是從_____________評(píng)價(jià)開(kāi)發(fā)一個(gè)新的軟件項(xiàng)目是否可行。10.研究開(kāi)發(fā)資源的有效性是進(jìn)行_____________可行性研究的一方面。

      11.在軟件的可行性研究中,可以從不同的角度對(duì)軟件進(jìn)行研究,其中是從軟件的功能可行 性角度考慮的是_____________。12.制定軟件計(jì)劃的目的在于盡早對(duì)欲開(kāi)發(fā)的軟件進(jìn)行合理估價(jià),軟件計(jì)劃的任務(wù)是_______ ______。

      13.數(shù)據(jù)流圖是常用的進(jìn)行軟件需求分析的圖形工具,其基本符合是_____________、______ _______、_____________和_____________。

      14.決定大型程序模型組織基本原則的兩種交替設(shè)計(jì)策略為_(kāi)____________和_____________。

      15.軟件系統(tǒng)可行性分析應(yīng)考慮_____________、_____________、_____________和________ _____等方面因素。解答: 1.數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)項(xiàng)、加工2.軟件可行性研究 3.值得去開(kāi)發(fā)且其中的問(wèn)題能否解決; 4.需求分析、設(shè)計(jì) 5.技術(shù)、經(jīng)濟(jì)、社會(huì) 6.開(kāi)發(fā)成本、比較和權(quán)衡 7.純收入 8.無(wú)形效益、有形效益 9.經(jīng)濟(jì)角度 10.技術(shù) 11.技術(shù)可行性 12.規(guī)劃與調(diào)度 13.加工、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、外部實(shí)體 14.數(shù)據(jù)分解、算法分解 15.經(jīng)濟(jì)、技術(shù)、社會(huì)環(huán)境和人。第三章: 需求分析 一.填空題

      1.軟件需求分析過(guò)程應(yīng)該建立_____________、_____________和_____________ 三種模型。2.需求分析的基本任務(wù)是要準(zhǔn)確地定義_____________,為了滿(mǎn)足用戶(hù)需要,回答系統(tǒng)必須 做什么的問(wèn)題。

      3.數(shù)據(jù)流圖有4個(gè)基本成分:_____________、_____________、_____________和_________ ____。

      4.流向數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)流可理解為_(kāi)____________文件或_____________文件,從數(shù)據(jù)存儲(chǔ) 流出的數(shù)據(jù)可理解為從文件_____________數(shù)據(jù)或得到_____________結(jié)果。

      5.需求分析的困難主要體現(xiàn)在4個(gè)方面:?jiǎn)栴}的復(fù)雜性、_____________、_____________需

      求易變性。

      6.由于數(shù)據(jù)流是流動(dòng)中的數(shù)據(jù),所以必須有_____________。除了與_____________之間的 數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語(yǔ)命名。

      7.結(jié)構(gòu)化分析方法是面向_____________進(jìn)行需求分析的方法。8.經(jīng)過(guò)需求分析,開(kāi)發(fā)人員已經(jīng)基本上理解了用戶(hù)的要求,確定了目標(biāo)系統(tǒng)的功能,定義 了系統(tǒng)數(shù)據(jù),描述了處理這些數(shù)據(jù)的基本策略。將這些共同的理解進(jìn)行了整理,最后形成文 檔_____________。

      9.在數(shù)據(jù)流圖中,有名字及方向的成分是_____________。

      10.在軟件需求分析中,開(kāi)發(fā)人員要從用戶(hù)那里解決的最重要的問(wèn)題是_____________。11.需求分析的最終結(jié)果是產(chǎn)生_____________。12.SA方法用DFD描述_____________。13.SA方法的基本思想是_____________。

      14.常用的需求分析方法有面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法,_____________,面向數(shù)據(jù)結(jié)構(gòu) 的

      分析方法等。

      15.通過(guò)_____________可以完成數(shù)據(jù)流圖的細(xì)化。解答: 1.數(shù)據(jù)模型、功能模型、行為模型 2.新系統(tǒng)的目標(biāo) 3.數(shù)據(jù)流、加工(又稱(chēng)數(shù)據(jù)處理)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)源點(diǎn)和終點(diǎn) 4.寫(xiě)入、查詢(xún)、讀、查詢(xún) 5.交流障礙、不完備性和不一致性 6.流向、數(shù)據(jù)存儲(chǔ) 7.數(shù)據(jù)流 8.需求說(shuō)明書(shū) 9.數(shù)據(jù)流 10.要讓軟件做什么 11.需求規(guī)格說(shuō)明書(shū) 12.系統(tǒng)的功能 13.自頂向下逐步分解 14.面向?qū)ο蟮姆治龇椒?15.功能分解 第五章: 總體設(shè)計(jì) 一.填空題

      1.過(guò)程設(shè)計(jì)語(yǔ)言的重復(fù)結(jié)構(gòu)有_____________結(jié)構(gòu)、_____________結(jié)構(gòu)_____________、結(jié) 構(gòu)三種。

      2.結(jié)構(gòu)化程序設(shè)計(jì)方法的基本要點(diǎn)是:(1)采用_____________、_____________、的程序 設(shè)計(jì)方法;(2)使用_____________構(gòu)造程序;(3)主程序員組的組織形式。

      3.在詳細(xì)設(shè)計(jì)階段,為了提高數(shù)據(jù)的輸入、存儲(chǔ)、檢索等操作的效率并節(jié)約存儲(chǔ)空間,對(duì) 某些數(shù)據(jù)項(xiàng)的值要進(jìn)行_____________設(shè)計(jì)。

      4.任何程序都可由_____________、_____________和_____________三種基本控制結(jié)構(gòu)構(gòu)造。這三種基本結(jié)構(gòu)的共同點(diǎn)是_____________、_____________。

      5.在詳細(xì)設(shè)計(jì)階段,除了對(duì)模塊內(nèi)的算法進(jìn)行設(shè)計(jì),還應(yīng)對(duì)模塊內(nèi)的_____________進(jìn)行設(shè) 計(jì)。

      6.在詳細(xì)設(shè)計(jì)階段,經(jīng)常采用的工具有_____________、PDL、PAD等。7.在單元測(cè)試中,測(cè)試一個(gè)模塊時(shí),需要設(shè)計(jì)_____________。

      8.軟件產(chǎn)品在交付使用之前一般要經(jīng)過(guò)以下4步測(cè)試_____________、_____________、____ _________、_____________。

      9.軟件測(cè)試用例由_____________和_____________組成。10.用黑盒技術(shù)設(shè)計(jì)測(cè)試用例的方法有_____________、_____________、_____________和__ ___________。

      11.源程序中加注釋是幫助理解程序的重要手段,注釋分為_(kāi)____________、_____________ 兩類(lèi)。

      12.近年來(lái),推出了許多面向?qū)ο蟮恼Z(yǔ)言,如_____________、_____________等。

      13.匯編語(yǔ)言是面向_____________的,可以完成_____________語(yǔ)言無(wú)法滿(mǎn)足要求的特殊功 能,如與外部設(shè)備之間的一些接口操作。

      14.語(yǔ)句構(gòu)造的原則是簡(jiǎn)單直接,不能為了追求效率而使代碼_____________ 15._____________是指程序從一個(gè)計(jì)算機(jī)環(huán)境移植到另一個(gè)計(jì)算機(jī)環(huán)境的容易程度 解答: 1.for、while、until 2.自頂向下、逐步求精、三種基本控制結(jié)構(gòu) 3.代碼 4.順序、選擇、重復(fù)、單入口、單出口 5.數(shù)據(jù)結(jié)構(gòu) 6.程序流程圖 7.驅(qū)動(dòng)模塊和樁模塊 8.單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試 9.測(cè)試輸入數(shù)據(jù)和對(duì)應(yīng)的預(yù)期輸出 10.等價(jià)類(lèi)劃分、邊界值分析、錯(cuò)誤推斷、因果圖 11.序言行注釋、功能性注釋 12.C++、JAVA 13.機(jī)器、高級(jí) 14.復(fù)雜化; 15.可移植性。

      第四篇:軟件工程導(dǎo)論試題

      軟件工程導(dǎo)論試題

      一.選擇

      1、瀑布模型把軟件生命周期劃分為八個(gè)階段:?jiǎn)栴}的定義、可行性研究、軟件需求分析、系統(tǒng)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試和運(yùn)行、維護(hù)。八個(gè)階段又可歸納為三個(gè)大的階段:計(jì)劃階段、開(kāi)發(fā)階段和(C)。A、詳細(xì)計(jì)劃 B、可行性分析

      C、運(yùn)行階段 D、測(cè)試與排錯(cuò)

      2、從結(jié)構(gòu)化的瀑布模型看,在它的生命周期中的八個(gè)階段中,下面的幾個(gè)選項(xiàng)中哪個(gè)環(huán)節(jié)出錯(cuò),對(duì)軟件的影響最大(C)。A、詳細(xì)設(shè)計(jì)階段 B、概要設(shè)計(jì)階段

      C、需求分析階段 D、測(cè)試和運(yùn)行階段

      3、在結(jié)構(gòu)化的瀑布模型中,哪一個(gè)階段定義的標(biāo)準(zhǔn)將成為軟件測(cè)試中的系統(tǒng)測(cè)試階段的目標(biāo)(A)。

      A、需求分析階段 B、詳細(xì)設(shè)計(jì)階段

      C、概要設(shè)計(jì)階段 D、可行性研究階段

      4、軟件工程的出現(xiàn)主要是由于(C)。

      A.程序設(shè)計(jì)方法學(xué)的影響 B.其它工程科學(xué)的影響

      C.軟件危機(jī)的出現(xiàn) D.計(jì)算機(jī)的發(fā)展

      5、軟件工程方法學(xué)的目的是:使軟件生產(chǎn)規(guī)范化和工程化,而軟件工程方法得以實(shí)施的主要保證是(C)A、硬件環(huán)境 B、軟件開(kāi)發(fā)的環(huán)境

      C、軟件開(kāi)發(fā)工具和軟件開(kāi)發(fā)的環(huán)境 D、開(kāi)發(fā)人員的素質(zhì)

      6、軟件開(kāi)發(fā)常使用的兩種基本方法是結(jié)構(gòu)化和原型化方法,在實(shí)際的應(yīng)用中,它們之間的關(guān)系表現(xiàn)為(B)A、相互排斥 B、相互補(bǔ)充

      C、獨(dú)立使用 D、交替使用

      7、UML是軟件開(kāi)發(fā)中的一個(gè)重要工具,它主要應(yīng)用于哪種軟件開(kāi)發(fā)方法(C)A、基于瀑布模型的結(jié)構(gòu)化方法 B、基于需求動(dòng)態(tài)定義的原型化方法 C、基于對(duì)象的面向?qū)ο蟮姆椒?D、基于數(shù)據(jù)的數(shù)據(jù)流開(kāi)發(fā)方法

      8、在下面的軟件開(kāi)發(fā)方法中,哪一個(gè)對(duì)軟件設(shè)計(jì)和開(kāi)發(fā)人員的開(kāi)發(fā)要求最高(B)A、結(jié)構(gòu)化方法 B、原型化方法 C、面向?qū)ο蟮姆椒?D、控制流方法

      9、結(jié)構(gòu)化分析方法是一種預(yù)先嚴(yán)格定義需求的方法,它在實(shí)施時(shí)強(qiáng)調(diào)的是分析對(duì)象的(B)A、控制流 B、數(shù)據(jù)流 C、程序流 D、指令流

      10、軟件開(kāi)發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成(A)A、計(jì)劃階段、開(kāi)發(fā)階段、運(yùn)行階段 B、計(jì)劃階段、編程階段、測(cè)試階段 C、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試 D、需求分析、功能定義、系統(tǒng)設(shè)計(jì)

      11、軟件開(kāi)發(fā)中常采用的結(jié)構(gòu)化生命周期方法,由于其特征而一般稱(chēng)其為(A)A、瀑布模型 B、對(duì)象模型 C、螺旋模型 D、層次模型

      12、軟件開(kāi)發(fā)的瀑布模型,一般都將開(kāi)發(fā)過(guò)程劃分為:分析、設(shè)計(jì)、編碼和測(cè)試等階段,一般認(rèn)為可能占用人員最多的階段是(C)A、分析階段 B、設(shè)計(jì)階段 C、編碼階段 D、測(cè)試階段 二.填空

      21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號(hào)表示系統(tǒng)中各個(gè)元素表達(dá)了系統(tǒng)中各種元素之間的(信息流動(dòng))情況。

      [解析]系統(tǒng)流程圖是描述物理系統(tǒng)的傳統(tǒng)工具,用圖形符號(hào)表示系統(tǒng)中的各個(gè)元素,如人工處理、數(shù)據(jù)處理、數(shù)據(jù)庫(kù)、文件、設(shè)備等,表達(dá)了元素之間的信息流動(dòng)的情況。

      22.成本效益分析的目的是從(經(jīng)濟(jì))角度評(píng)價(jià)開(kāi)發(fā)一個(gè)項(xiàng)目是否可行。

      [解析]成本效益分析首先是估算將要開(kāi)發(fā)的系統(tǒng)的開(kāi)發(fā)成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡,其目的是從經(jīng)濟(jì)角度評(píng)價(jià)開(kāi)發(fā)一個(gè)新的軟件項(xiàng)目是否可行。23.自頂向下結(jié)合的漸增式測(cè)試法,在組合模塊時(shí)有兩種組合策略:深度優(yōu)先策略和(寬度優(yōu)先策略)。

      [解析]漸增式測(cè)試法有自頂向下結(jié)合和自底向上結(jié)合兩種組裝模塊的方法,其中自頂向下集成是構(gòu)造程序結(jié)構(gòu)的一種增量式方式,不需要編寫(xiě)驅(qū)動(dòng)模塊,只需要編寫(xiě)樁模塊。它從主控模塊開(kāi)始,按照軟件的控制層次結(jié)構(gòu),以深度優(yōu)先或?qū)挾葍?yōu)先的策略,逐步把各個(gè)模塊集成在一起。

      24.獨(dú)立路徑是指包括一組以前沒(méi)有處理的語(yǔ)句或條件的一條路徑。從程序圖來(lái)看,一條獨(dú)立路徑是至少包含有一條(在其他獨(dú)立路徑中未有過(guò))的邊的路徑。

      [解析]在基本路徑測(cè)試中,以詳細(xì)設(shè)計(jì)或源程序?yàn)榛A(chǔ),導(dǎo)出控制流程圖的拓?fù)浣Y(jié)構(gòu)——程序圖,在計(jì)算了程序圖的環(huán)路復(fù)雜性之后,確定只包含獨(dú)立路徑的基本路徑圖,其中獨(dú)立路徑是包括一組以前沒(méi)有處理的語(yǔ)句或條件的一條路徑。從程序圖來(lái)看,一條獨(dú)立路徑是至少包含有一條在其他獨(dú)立路徑中未有過(guò)的邊的路徑。

      25.匯編語(yǔ)言是面向(機(jī)器)的,可以完成高級(jí)語(yǔ)言無(wú)法完成的特殊功能,如與外部設(shè)備之間的一些接口工作。

      [解析]匯編語(yǔ)言屬于低級(jí)語(yǔ)言,是一種面向機(jī)器的語(yǔ)言,它與高級(jí)語(yǔ)言相比有許多優(yōu)越性:如操作靈活,可以直接作用到硬件的最下層,完成與外部設(shè)備的接口工作等,是能夠利用計(jì)算機(jī)硬件特性直接控制硬件設(shè)備的唯一語(yǔ)言。

      26.在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是(中間數(shù)據(jù)結(jié)構(gòu)或中間文件)。

      [解析]JSP方法是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。它定義了一組以數(shù)據(jù)結(jié)構(gòu)為指導(dǎo)的映射過(guò)程,根據(jù)輸入、輸出的數(shù)據(jù)結(jié)構(gòu),按一定的規(guī)則映射成軟件的過(guò)程描述,在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件,將沖突部分分隔開(kāi)來(lái),建立多個(gè)程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來(lái),構(gòu)成一個(gè)系統(tǒng)的整體。

      27.詳細(xì)設(shè)計(jì)的任務(wù)是確定每個(gè)模塊的內(nèi)部特性,即模塊的算法、(使用的數(shù)據(jù))。

      [解析]詳細(xì)設(shè)計(jì)的基本任務(wù)是為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì),為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),確定每個(gè)模塊的內(nèi)部特性,包括模塊的算法和使用的數(shù)據(jù)。對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理設(shè)計(jì)等。

      28.所有軟件維護(hù)申請(qǐng)報(bào)告要按規(guī)定方式提出,該報(bào)告也稱(chēng)(軟件問(wèn)題)報(bào)告。

      [解析]在軟件維護(hù)的流程中,第一步就是制定維護(hù)申請(qǐng)報(bào)告,也稱(chēng)為軟件問(wèn)題報(bào)告,它是維護(hù)階段的一種文檔,由申請(qǐng)維護(hù)的用戶(hù)填寫(xiě)。

      29.有兩類(lèi)維護(hù)技術(shù):在開(kāi)發(fā)階段使用來(lái)減少錯(cuò)誤、提高軟件可維護(hù)性的面向維護(hù)的技術(shù);在維護(hù)階段用來(lái)提高維護(hù)的效率和質(zhì)量的(維護(hù)支援)技術(shù)。

      [解析]面向維護(hù)的技術(shù)涉及軟件開(kāi)發(fā)的所有階段,能夠減少軟件錯(cuò)誤,提高軟件的可維護(hù)性。而維護(hù)支援技術(shù)則包含信息收集,錯(cuò)誤原因分析,維護(hù)方案評(píng)價(jià)等項(xiàng),是在軟件維護(hù)階段用來(lái)提高維護(hù)效率和質(zhì)量的技術(shù)。

      30.科學(xué)工程計(jì)算需要大量的標(biāo)準(zhǔn)庫(kù)函數(shù),以便處理復(fù)雜的數(shù)值計(jì)算,可供選擇的語(yǔ)言有:(FORTRAN語(yǔ)言)、PASCAL語(yǔ)言、C語(yǔ)言和PL/1語(yǔ)言。

      [解析]計(jì)算機(jī)語(yǔ)言根據(jù)不同行業(yè)的需求,使用的側(cè)重點(diǎn)也不盡相同,在辦公管理方面,一些數(shù)據(jù)庫(kù)語(yǔ)言如FOXPRO、ORICAL有很多的應(yīng)用,在工程行業(yè),計(jì)算機(jī)語(yǔ)言的科學(xué)計(jì)算能力就顯得格外重要,如MATLAB、PL/

      1、FORTRAN語(yǔ)言都是工程計(jì)算中常用的語(yǔ)言。三.判斷

      1.軟件的開(kāi)發(fā)與運(yùn)行經(jīng)常受到硬件的限制和制約。(√)

      2.模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。(√)3.Jackson圖只能表達(dá)程序結(jié)構(gòu),不能表達(dá)數(shù)據(jù)結(jié)構(gòu)。(X)

      上述數(shù)據(jù)流圖表示數(shù)據(jù)A和B同時(shí)輸入變換成C。(X)

      5.軟件的質(zhì)量好壞主要由驗(yàn)收人員負(fù)責(zé),其他開(kāi)發(fā)人員不必關(guān)心。(X)

      6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。(√)

      7.應(yīng)該盡量使用機(jī)器語(yǔ)言編寫(xiě)代碼,提高程序運(yùn)行效率,而減少高級(jí)語(yǔ)言的使用。(X)

      8.UML只能應(yīng)用于軟件系統(tǒng)模型的建立。(X)

      9.容錯(cuò)就是每個(gè)程序采用兩種不同的算法編寫(xiě)。(X)

      10.軟件測(cè)試的目的是為了無(wú)一遺漏的找出所有的錯(cuò)誤。(X)

      四、名詞解釋題(本大題共5小題,每小題3分,共15分)

      31.軟件開(kāi)發(fā)環(huán)境

      32.錯(cuò)誤推測(cè)法

      33.黑盒測(cè)試法

      34.軟件質(zhì)量保證

      35.瀑布模型 31.經(jīng)濟(jì)可行性

      解:進(jìn)行開(kāi)發(fā)成本的估算以及了解取得效益的評(píng)估,確定要開(kāi)發(fā)的項(xiàng)目是否值得投資開(kāi)發(fā)。

      [解析]對(duì)于一個(gè)系統(tǒng)所必須要衡量的是經(jīng)濟(jì)上是否合算,經(jīng)濟(jì)可行性的范圍很廣,包括效益分析、潛在市場(chǎng)前景等。

      32.社會(huì)可行性

      解:要開(kāi)發(fā)的項(xiàng)目是否存在任何侵犯、妨礙等責(zé)任問(wèn)題,要開(kāi)發(fā)項(xiàng)目目的運(yùn)行方式在用戶(hù)組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。

      [解析]社會(huì)可行性包括合同、責(zé)任、侵權(quán)等技術(shù)人員不甚了解的諸多問(wèn)題。

      33.投資回收期

      解:投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初的投資費(fèi)用所需的時(shí)間。

      [解析]通常我們用投資回收期來(lái)衡量一個(gè)開(kāi)發(fā)項(xiàng)目的價(jià)值,投資回收期越短,就越快獲得利潤(rùn)。

      34.對(duì)應(yīng)關(guān)系

      解:即有直接因果關(guān)系在程序中可以同時(shí)處理。

      [解析]對(duì)應(yīng)關(guān)系是指數(shù)據(jù)單元在數(shù)據(jù)內(nèi)容上、數(shù)量上和順序上有直接的因果關(guān)系,對(duì)于重復(fù)的數(shù)據(jù)單元,重復(fù)的次序和次數(shù)都相同才有對(duì)應(yīng)關(guān)系。

      35.結(jié)構(gòu)沖突

      解:輸入數(shù)據(jù)與輸出數(shù)據(jù)結(jié)構(gòu)找不到對(duì)應(yīng)關(guān)系的情況,稱(chēng)為結(jié)構(gòu)沖突。

      [解析]使用JSP方法時(shí)會(huì)遇到此類(lèi)結(jié)構(gòu)沖突問(wèn)題,對(duì)此,Jackson提出了引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件的辦法,將沖突部分分隔開(kāi)來(lái),建立多個(gè)程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來(lái),構(gòu)成一個(gè)系統(tǒng)的整體。

      五、圖 a 中,模塊 G 為判定,判斷涉及到模塊 B、F、G,請(qǐng)指出設(shè)計(jì)中的錯(cuò)誤,再根據(jù) 改進(jìn)模 塊圖的基本原則,畫(huà)出 1~2 個(gè)改進(jìn)方案(不改變模塊 G 的判斷關(guān)系),并說(shuō)明是按照

      哪條基本 原則進(jìn)行改進(jìn)的。

      解:圖 b 為一個(gè)改進(jìn)方案,將模塊 G 的位置提高,使其作用范圍為控制范圍的子集,減 少模塊 之間的聯(lián)系。

      40.請(qǐng)使用PAD圖和PDL語(yǔ)言描述在數(shù)組A(1)~A(10)中找最大數(shù)的算法。

      解:PDL語(yǔ)言:

      N=1

      WHILE N<=10 DO

      IF A(N)<=A(N+1)MAX =A(N+1);

      ELSE MAX =A(N)ENDIF;

      N=N+1;

      ENDWHILE;

      PAD圖:

      [解析]人工查找時(shí),是從第一個(gè)元素開(kāi)始查找,用當(dāng)前元素與下一個(gè)元素比較,將較大者作為當(dāng)前元素又與下一元素比較,如此循環(huán),直到數(shù)組末尾。

      41.根據(jù)下列條件使用等價(jià)類(lèi)劃分法設(shè)計(jì)測(cè)試用例。

      某一8位微機(jī),其八進(jìn)制常數(shù)定義為:以零開(kāi)頭的數(shù)是八進(jìn)制整數(shù),其值的范圍是-177~177,如05,0127,-065

      解:(1)劃分等價(jià)類(lèi)并編號(hào),如下表示:(4分)

      (2)為合理等價(jià)類(lèi)設(shè)計(jì)測(cè)試用例,表中有兩個(gè)合理等價(jià)類(lèi),設(shè)計(jì)兩個(gè)例子(2分)

      (3)為不合理等價(jià)類(lèi)測(cè)試用例,至少設(shè)計(jì)一個(gè)測(cè)試用例(2分)

      [解析]等價(jià)類(lèi)劃分屬于黑盒測(cè)試的一種,它將輸入數(shù)據(jù)域按有效的或無(wú)效的劃分成若干個(gè)等價(jià)類(lèi),測(cè)試每個(gè)等價(jià)類(lèi)的代表值就等于對(duì)該類(lèi)其他值的測(cè)試,這樣用少量有代表性的例子代替大量測(cè)試目的相同的例子,可以有效提高測(cè)試效率。本題劃分了3個(gè)合理等價(jià)類(lèi),9個(gè)不合理等價(jià)類(lèi)進(jìn)行測(cè)試,取到了預(yù)期的效果。

      42.某電器集團(tuán)公司下屬的廠包括技術(shù)科、生產(chǎn)科等基層單位?,F(xiàn)在想建立一個(gè)計(jì)算機(jī)輔助企業(yè)管理系統(tǒng),其中:

      生產(chǎn)科的任務(wù)是:

      (1)根據(jù)銷(xiāo)售公司轉(zhuǎn)來(lái)的內(nèi)部合同(產(chǎn)品型號(hào)、規(guī)格、數(shù)量、交獲日期)制定車(chē)間月生產(chǎn)計(jì)劃。

      (2)根據(jù)車(chē)間實(shí)際生產(chǎn)日?qǐng)?bào)表、周報(bào)表調(diào)整月生產(chǎn)計(jì)劃

      (3)以月生產(chǎn)計(jì)劃為以及,制定產(chǎn)品設(shè)計(jì)(結(jié)構(gòu)、工藝)及產(chǎn)品組裝月計(jì)劃。

      (4)將產(chǎn)品的組裝計(jì)劃傳達(dá)到各科,將組裝月計(jì)劃分解為周計(jì)劃,下達(dá)給車(chē)間

      技術(shù)科的任務(wù)是:

      (1)根據(jù)生產(chǎn)科轉(zhuǎn)來(lái)的組裝計(jì)劃進(jìn)行產(chǎn)品結(jié)構(gòu)設(shè)計(jì),產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,產(chǎn)生外購(gòu)需求計(jì)劃給供應(yīng)科,并產(chǎn)生產(chǎn)品自制物料清單。

      (2)根據(jù)組裝計(jì)劃進(jìn)行產(chǎn)品工藝設(shè)計(jì),根據(jù)產(chǎn)品自制物料清單產(chǎn)生工藝流程圖給零件廠。試寫(xiě)出以上系統(tǒng)中生產(chǎn)科和技術(shù)科處理的軟件結(jié)構(gòu)圖。

      解:

      畫(huà)出生產(chǎn)科圖的給6分,畫(huà)出技術(shù)科的給4分。

      [解析]軟件結(jié)構(gòu)圖是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個(gè)系統(tǒng)的功能實(shí)現(xiàn),即將來(lái)程序的控制層次體系,軟件結(jié)構(gòu)往往用樹(shù)狀或網(wǎng)狀結(jié)構(gòu)的圖形來(lái)表示,其主要內(nèi)容有模塊及模塊的控制關(guān)系,根據(jù)題意,可繪制出生產(chǎn)科和技術(shù)科的軟件結(jié)構(gòu)圖,其中生產(chǎn)科的結(jié)構(gòu)圖深度和寬度均為4,技術(shù)科的結(jié)構(gòu)圖的深度和寬度均為3。

      第五篇:教案軟件工程導(dǎo)論

      授課日期: 11月13日

      課程名稱(chēng): 軟件工程導(dǎo)論

      教學(xué)目的:讓學(xué)生了解軟件以及軟件危機(jī)的概念

      了解軟件危機(jī)出現(xiàn)的原因以及解決途徑

      熟悉軟件工程產(chǎn)生的原因以及其生命周期各個(gè)階段的任務(wù) 教學(xué)重點(diǎn):軟件危機(jī)的出現(xiàn)原因、軟件工程的基本原理、軟件生命周期 教學(xué)難點(diǎn):生命周期各個(gè)階段的任務(wù) 教學(xué)過(guò)程:講解軟件的概念

      通過(guò)軟件危機(jī)的表現(xiàn)及原因分析引入軟件工程的基本概念 分析消除軟件危機(jī)的途徑 講解軟件工程的基本原理

      計(jì)算機(jī)系統(tǒng)發(fā)展迅速,但是人們?nèi)匀粵](méi)有徹底擺脫“軟件危機(jī)”的困擾,軟件已經(jīng)成為限制計(jì)算機(jī)系統(tǒng)發(fā)展的瓶頸。計(jì)算機(jī)軟件工程學(xué)就是為了研究如何消除軟件危機(jī)而發(fā)展起來(lái)的。那么什么是軟件危機(jī)呢?

      在開(kāi)始講軟件危機(jī)時(shí)我要先提出一個(gè)概念:什么是軟件?(板書(shū):軟件危機(jī)、什么是軟件)簡(jiǎn)單來(lái)舉例像我們平時(shí)用的word、excel都是計(jì)算機(jī)軟件。

      軟件就是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它包括程序、相關(guān)數(shù)據(jù)及其說(shuō)明文檔。(軟件的英文名為Software板書(shū):software=program+data+document)

      那它具有什么特性呢?在這里我向大家繪制兩幅圖,大家可以比較討論一下

      硬件的失效率剛開(kāi)始是降低的,這個(gè)階段就是磨合調(diào)整,通過(guò)調(diào)整失效率降低并達(dá)到一定時(shí)期的穩(wěn)定,那為什么會(huì)失效率增高呢,硬件是物理實(shí)體它存在磨損用壞的問(wèn)題。再來(lái)看軟件的失效圖像,我繪制了兩條,一條是理想情況下,另一天是實(shí)際情況下。大家可以看出來(lái)嗎?沒(méi)錯(cuò),開(kāi)發(fā)出來(lái)的軟件并不是永遠(yuǎn)有效的,隨著用戶(hù)的需求增大等情況失效率會(huì)增高。從圖中我們還可以看出在軟件的運(yùn)行和使用期間,沒(méi)有硬件那樣的機(jī)械磨損,老化問(wèn)題。因?yàn)檐浖且环N邏輯實(shí)體,并非具體的物理實(shí)體。

      另外呢,軟件復(fù)雜性很高,軟件技術(shù)的發(fā)展落后于需求,成本也相當(dāng)昂貴。

      講完軟件的概念,那么軟件危機(jī)就比較容易理解了,軟件危機(jī)就是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。那么大家思考一下,能夠正常運(yùn)行的軟件可能會(huì)存在軟件危機(jī)嗎?答案是可能會(huì)。實(shí)際上,幾乎所有軟件都不同程度地存在這些問(wèn)題。比方說(shuō),你在用QQ軟件時(shí),它不能與你的計(jì)算機(jī)硬件環(huán)境兼容或是不能滿(mǎn)足你的要求。

      總結(jié)下來(lái),軟件危機(jī)需要應(yīng)對(duì)兩方面的問(wèn)題:

      (1)如何開(kāi)發(fā)軟件,以滿(mǎn)足對(duì)軟件日益增長(zhǎng)的需求(2)如何維護(hù)數(shù)量不斷膨脹的已有軟件

      軟件危機(jī)又有哪些典型表現(xiàn)呢?我們?cè)谶M(jìn)行一項(xiàng)工程時(shí)是不是經(jīng)常會(huì)有一個(gè)工程預(yù)算,軟件工程也不例外,如果對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)不準(zhǔn)確,那么就很容易使用戶(hù)不滿(mǎn)。再來(lái)如果沒(méi)有和用戶(hù)進(jìn)行很好的溝通就著手編寫(xiě)程序,那么人家也不會(huì)滿(mǎn)意;軟件質(zhì)量靠不住、軟件開(kāi)發(fā)出來(lái)是不可維護(hù)的,也可以說(shuō)是不能夠?qū)ζ涔δ苓M(jìn)行修改適應(yīng)用戶(hù)需求;軟件開(kāi)發(fā)供不應(yīng)求都是軟件危機(jī)的表現(xiàn)。

      那么出現(xiàn)軟件危機(jī)的原因是什么?在分析原因時(shí)我們就通常從內(nèi)因外因來(lái)說(shuō),在前面我有講到軟件的特征,軟件復(fù)雜度高,成本昂貴等都與軟件危機(jī)的出現(xiàn)有關(guān),外因則是由軟件開(kāi)發(fā)和維護(hù)的方法不正確有關(guān)。

      下面我將引入一個(gè)問(wèn)題,大家思考一下,假設(shè)你是軟件公司的總工程師,當(dāng)你告訴自己手下的工程師們及時(shí)發(fā)現(xiàn)并改正錯(cuò)誤的重要性時(shí),有人不同意這個(gè)觀點(diǎn),認(rèn)為要求在錯(cuò)誤進(jìn)入軟件之前就清楚它們是不現(xiàn)實(shí)的,并且還舉了一個(gè)例子:“如果一個(gè)故障是編碼錯(cuò)誤造成的,那么,一個(gè)人又怎么能再設(shè)計(jì)階段就清除他呢?”你同意他的觀點(diǎn)嗎?

      答:在軟件開(kāi)發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不一樣的,在早期引入變動(dòng),涉及的面比較少,代價(jià)也比較低當(dāng)進(jìn)入開(kāi)發(fā)中期,軟件配置的許多東西都已經(jīng)完成,引入一個(gè)變動(dòng)要對(duì)所有已完成的配置成分都做相應(yīng)地修改,不僅工作量大,而且邏輯上海很復(fù)雜,代價(jià)劇增啊,在軟件已經(jīng)完成時(shí)在引入變動(dòng),當(dāng)然需要付出更大的代價(jià)。況且軟件的開(kāi)發(fā)是團(tuán)體合作,并不是一個(gè)人,早發(fā)現(xiàn)早解決很重要!

      那么如何消除軟件危機(jī)呢?這也是我們這門(mén)課永恒的課題啊

      首先呢我們要對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí),軟件并不等于程序,這是很多學(xué)生出的問(wèn)題

      必須充分認(rèn)識(shí)到軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的產(chǎn)物,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類(lèi)人員協(xié)同配合、共同完成的工程項(xiàng)目。也就是我們所說(shuō)的團(tuán)隊(duì)合作

      推廣使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功技術(shù)和方法 開(kāi)發(fā)和使用更好的軟件工具

      那么軟件危機(jī)我們就講到這,下面開(kāi)始介紹軟件工程:

      什么是工程?我們平時(shí)經(jīng)常聽(tīng)到水利工程,建筑工程,工程就是對(duì)技術(shù)實(shí)體的分析、設(shè)計(jì)、建造、驗(yàn)證和管理。那么我們知道軟件是一種邏輯產(chǎn)品,看不到摸不著而軟件工程就是把軟件當(dāng)做一種工業(yè)產(chǎn)品,要求采用工程化的原理與方法對(duì)軟件進(jìn)行計(jì)劃、開(kāi)發(fā)和維護(hù)。是一種新興工程。

      如何定義它呢?軟件工程就是為了經(jīng)濟(jì)地獲得可靠地且能再實(shí)際機(jī)器上高效運(yùn)行的軟件,而建立和使用完善的工作原理;另一個(gè)更全面更具體的定義:軟件工程是把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是把工程應(yīng)用于軟件。

      下面就是本節(jié)課的重點(diǎn),請(qǐng)大家認(rèn)真聽(tīng)講。軟件工程的基本原理:

      1、用分階段的生命周期計(jì)劃嚴(yán)格管理 在軟件開(kāi)發(fā)和維護(hù)的漫長(zhǎng)的生命周期中,需要完成各種任務(wù)。因而就應(yīng)該吧軟件生命周期劃分為若干個(gè)階段,并相應(yīng)地制定出切實(shí)可行的計(jì)劃,并嚴(yán)格計(jì)劃開(kāi)發(fā),維護(hù)。

      2、堅(jiān)持進(jìn)行階段評(píng)審

      軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束后再進(jìn)行,那么在每個(gè)階段都進(jìn)行嚴(yán)格的評(píng)審可以更早的發(fā)現(xiàn)在開(kāi)發(fā)過(guò)程中的錯(cuò)誤,及時(shí)改正

      3、實(shí)行嚴(yán)格的產(chǎn)品控制

      大家都知道軟件開(kāi)發(fā)成本很高,那就意味著不能隨意更改需求。要必須按照嚴(yán)格的規(guī)程進(jìn)行評(píng)審,獲得批準(zhǔn)以后才能實(shí)施修改。

      4、采用現(xiàn)代程序設(shè)計(jì)技術(shù)

      采用先進(jìn)的技術(shù)不僅可以提高軟件開(kāi)發(fā)和維護(hù)的效率,而且可以提高軟件產(chǎn)品的質(zhì)量。

      5、結(jié)果應(yīng)能清楚的審查

      軟件是看不到摸不著的邏輯產(chǎn)品,應(yīng)該根據(jù)軟件開(kāi)發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定產(chǎn)品的標(biāo)準(zhǔn),從而使得所得到的的結(jié)果更容易被審查

      6、開(kāi)發(fā)小組的人員應(yīng)該少而精 大家不是都在說(shuō)人多力量大嗎,何況軟件開(kāi)發(fā)是團(tuán)隊(duì)協(xié)作嗎?在這里要注意到人員多交流情況討論問(wèn)題也會(huì)增加,耗時(shí)耗力。所以軟件開(kāi)發(fā)小組的組成人員應(yīng)該要素質(zhì)高,且不宜過(guò)高。

      7、承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性

      就是要積極主動(dòng)的采納新的軟件技術(shù),且要不斷總結(jié)經(jīng)驗(yàn)。大家可以想象一下,如果開(kāi)發(fā)小組組長(zhǎng)是一個(gè)固步自封的頑固派,那么后果將不堪設(shè)想 下面進(jìn)行另一個(gè)知識(shí)點(diǎn):軟件生命周期

      概括地說(shuō),軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)3個(gè)時(shí)期組成,但每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段;這里我?guī)痛蠹铱偨Y(jié)了一下: 計(jì)劃---需求分析---設(shè)計(jì)---編碼---測(cè)試---運(yùn)行、維護(hù) 在這里我解釋一下,在開(kāi)發(fā)軟件時(shí)我們要制定計(jì)劃,做需求分析了解用戶(hù)想利用計(jì)算機(jī)軟件幫他們解決什么問(wèn)題然后進(jìn)行設(shè)計(jì)它類(lèi)似于工程師經(jīng)常使用的工程藍(lán)圖,它包含了詳細(xì)的設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能。接下來(lái)就是編碼實(shí)現(xiàn)功能,而測(cè)試則是使軟件達(dá)到預(yù)訂的要求,在這里并不是結(jié)束我們還要對(duì)其進(jìn)行運(yùn)行維護(hù)持續(xù)滿(mǎn)足用戶(hù)的需求。

      那現(xiàn)在我們來(lái)說(shuō)一下具體的軟件過(guò)程

      軟件過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。這就好比我們要建一棟房子,必須要有廚房,臥室吧,那么我們就需要有一個(gè)任務(wù)表,第一步干什么第二步干什么來(lái)完成。軟件過(guò)程也是這樣。那有的同學(xué)會(huì)問(wèn)我們前面不是講過(guò)軟件周期嗎,它不是也規(guī)定了先干什么后干什么嗎,對(duì),沒(méi)錯(cuò),它也是一種過(guò)程模型。但實(shí)際上要根據(jù)項(xiàng)目的特點(diǎn)來(lái)劃分階段,這也就引出了我們下面要研究的瀑布模型

      大家可以比較一下它和生命周期模型的異同,在下節(jié)課我希望大家能夠在課堂上舉手發(fā)言。

      歸納小結(jié):這節(jié)課呢,我們主要講了什么是軟件,軟件具有什么特性,有四點(diǎn):邏輯實(shí)體、成本昂貴、技術(shù)落后于需求、復(fù)雜度高。在就是軟件危機(jī)的相關(guān)概念以及為什么出現(xiàn)軟件危機(jī),以及解決軟件危機(jī)的途徑,也引入了軟件的生命周期等知識(shí)點(diǎn),望同學(xué)課下做好復(fù)習(xí)。

      課后作業(yè):素材32 1、3

      下載軟件工程導(dǎo)論(第6版)word格式文檔
      下載軟件工程導(dǎo)論(第6版).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(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)范文推薦

        軟件工程導(dǎo)論教案

        計(jì)算機(jī)系統(tǒng)發(fā)展迅速,但是人們?nèi)匀粵](méi)有徹底擺脫“軟件危機(jī)”的困擾,軟件已經(jīng)成為限制計(jì)算機(jī)系統(tǒng)發(fā)展的瓶頸。計(jì)算機(jī)軟件工程學(xué)就是為了研究如何消除軟件危機(jī)而發(fā)展起來(lái)的。那么......

        軟件工程導(dǎo)論課程報(bào)告

        軟件工程導(dǎo)論課程報(bào)告 學(xué)習(xí)軟件工程導(dǎo)論將近一個(gè)學(xué)期了,期間學(xué)習(xí)讓我認(rèn)識(shí)和了解到軟件工程專(zhuān)業(yè)的各種相關(guān)知識(shí),為我能學(xué)習(xí)好軟件工程這個(gè)專(zhuān)業(yè)打下了專(zhuān)業(yè)背景知識(shí)的基礎(chǔ)。自己......

        軟件工程導(dǎo)論填空題總結(jié)

        1.軟件生存周期一般可分為問(wèn)題定義、可行性研究、需求分析、設(shè)計(jì)編碼、測(cè)試、運(yùn)行與維護(hù)階段。 2.按軟件的功能進(jìn)行劃分,軟件可以劃分為系統(tǒng)軟件、支撐軟件 和應(yīng)用軟件。 3.......

        軟件工程導(dǎo)論試題(打印)

        軟件工程導(dǎo)論試題(老師給的) 一.選擇 1、瀑布模型把軟件生命周期劃分為八個(gè)階段:?jiǎn)栴}的定義、可行性研究、軟件需求分析、系統(tǒng)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試和運(yùn)行、維護(hù)。八......

        軟件工程導(dǎo)論期末試題

        軟件工程導(dǎo)論期末考試試題 一.選擇(20分) 1、瀑布模型把軟件生命周期劃分為八個(gè)階段:?jiǎn)栴}的定義、可行性研究、軟件需求分析、系統(tǒng)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試和運(yùn)行、維護(hù)......

        軟件工程導(dǎo)論試題(打印)

        軟件工程導(dǎo)論試題(老師給的) 一.選擇 1、瀑布模型把軟件生命周期劃分為八個(gè)階段:?jiǎn)栴}的定義、可行性研究、軟件需求分析、系統(tǒng)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試和運(yùn)行、維護(hù)。八......

        《軟件工程導(dǎo)論》《軟件工程》課程設(shè)計(jì)指導(dǎo)書(shū)

        《軟件工程導(dǎo)論》《軟件工程》課程設(shè)計(jì)指導(dǎo)書(shū) 課程代號(hào):31110630,31110510 總學(xué)時(shí)(或周數(shù)):1周 適用專(zhuān)業(yè):軟件工程,計(jì)算機(jī)科學(xué)與技術(shù) 先修課程:程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)等......

        軟件工程導(dǎo)論復(fù)習(xí)材料

        1. 軟件工程基本概念 1. ( )因素促使計(jì)算機(jī)系統(tǒng)越來(lái)越復(fù)雜。 A. 計(jì)算機(jī)內(nèi)存和存儲(chǔ)容量上的巨大增長(zhǎng)B. 外部輸入/輸出選項(xiàng)的更加多樣性C. 計(jì)算機(jī)體系結(jié)構(gòu)方面的深刻變化D. 以上......