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

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

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

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

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

      軟件工程半開卷總結(jié)

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

      第一篇:軟件工程半開卷總結(jié)

      軟件工程導(dǎo)論

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

      通俗的解釋:軟件=程序+數(shù)據(jù)+文檔資料。程序是完成特定功能和滿足性能要求的指令序列;數(shù)據(jù)是程序運(yùn)行的基礎(chǔ)和操作的對(duì)象;文檔時(shí)與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料。

      2:軟件危機(jī):1軟件的開發(fā)費(fèi)用和進(jìn)度難以控制;2開發(fā)出來(lái)的軟件不能滿足用戶的要求;3軟件的可維護(hù)性差;4軟件的質(zhì)量差。

      3:軟件的特點(diǎn): 1軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體;2軟件的生產(chǎn)與硬件不同,沒有明顯的制造過程;3軟件在運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損,老化問題;4軟件對(duì)硬件和環(huán)境有著不同成都的的依賴性,導(dǎo)致了軟件的升級(jí)和移植問題;5復(fù)雜性越來(lái)越高;6成本相當(dāng)昂貴。

      4:解決軟件危機(jī)的途徑:人們認(rèn)識(shí)到既要有技術(shù)措施(方法和工具),還要有必要的組織管理措施。一方面先進(jìn)的開發(fā)方法和工具,不僅可以提高軟件開發(fā)及維護(hù)的效率,也保證了軟件的質(zhì)量。另外由于軟件開發(fā)活動(dòng)不是簡(jiǎn)單的個(gè)體行為,嚴(yán)密的組織,夜歌的管理和各類人員的協(xié)調(diào)一致的工作,是必不可少的因素。按工程化的原則和方法組織軟件開發(fā)工作是有效的,是擺脫軟件危機(jī)的一個(gè)主要的出路。

      5:軟件開發(fā)模型:1瀑布模型:定義(也稱傳統(tǒng)的生命周期模型,將軟件生存期的活動(dòng)和人物規(guī)定為依線性順序連接的若干階段(缺點(diǎn))改意見,那么整個(gè)軟件項(xiàng)目將會(huì)蒙受巨大的人力,財(cái)力和時(shí)間方面的損失。)適用場(chǎng)合(適用于功能和性能需求明確的軟件項(xiàng)目的開發(fā)和維護(hù),如編譯系統(tǒng),數(shù)據(jù)庫(kù)管理系統(tǒng)和操作系統(tǒng)等)優(yōu)點(diǎn)(提供了軟件開發(fā)的基本框架,這比依靠“個(gè)人技藝”開發(fā)軟件好的多,它有利于大型軟件開發(fā)過程中人員的組織,管理,有利于軟件開發(fā)方法和工具的研究和使用,從而提高了大型軟件項(xiàng)目開發(fā)的質(zhì)量和效率。)缺點(diǎn)(1.在軟件開發(fā)的初始階段指明軟件系統(tǒng)的全部需求是困難的,有時(shí)甚至是不現(xiàn)實(shí)的,而瀑布模型在需求分析階段要求客戶和系統(tǒng)分析員必須要做到這一點(diǎn)才能開展后續(xù)階段的工作。2.需求確定后,用戶和軟件項(xiàng)目負(fù)責(zé)人要等相當(dāng)長(zhǎng)的時(shí)間才能得到一份軟件的最初版本,如果用戶對(duì)這個(gè)軟件提出比較大的修。)2原型模型(演化模型):定義:(是指第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來(lái)的用戶和系統(tǒng)的交互,用戶或客戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開發(fā)軟件的需求。)使用場(chǎng)合(針對(duì)在軟件開發(fā)初期在確定軟件系統(tǒng)需求方面存在的困難)優(yōu)點(diǎn)(可以克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來(lái)的開發(fā)風(fēng)險(xiǎn),具有顯著的效果。(意義)滿足客戶的要求,開發(fā)人員可以確定客戶的真正的需求是什么,第二步則在第一步的基礎(chǔ)上開發(fā)客戶滿意的軟件產(chǎn)品)缺點(diǎn)(不宜利用原型模型作為最終產(chǎn)品,除少數(shù)簡(jiǎn)單的事務(wù)系統(tǒng)外,大多數(shù)原型可能都會(huì)廢棄不用,僅把建立原型的過程當(dāng)作幫助定義軟件需求的一種手段。由此,原型模型的“快速”特點(diǎn)對(duì)最終系統(tǒng)是不適用的,且對(duì)最終產(chǎn)品像原型一樣快速修改可能會(huì)比較困難)3螺旋模型:定義(將瀑布模型和原型模型結(jié)合起來(lái),強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,螺旋模型沿著螺線進(jìn)行若干次迭代,螺旋模型中每一圈對(duì)應(yīng)一個(gè)階段。(缺點(diǎn))模較小的項(xiàng)目利用螺旋模型開發(fā)會(huì)導(dǎo)致成本過大)適用場(chǎng)合(適用于大型軟件的開發(fā))優(yōu)點(diǎn)(既保持了傳統(tǒng)生命周期模型中系統(tǒng)的階段性方法,又將迭代演化思想吸收到模型中,維護(hù)和開發(fā)之間沒有什么本質(zhì)的差別,維護(hù)只是另一個(gè)螺旋循環(huán)開始而已,且支持對(duì)已有軟件的復(fù)用,并能把軟件質(zhì)量作為特定的目標(biāo)結(jié)合在其中)缺點(diǎn)(螺旋模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的,這對(duì)該模型的使用帶來(lái)了一些限制:首先,要求軟件開發(fā)人員擅長(zhǎng)風(fēng)險(xiǎn)分析,否則真正的風(fēng)險(xiǎn)是:重大風(fēng)險(xiǎn)沒有被開發(fā)人員識(shí)別,使其造成重大損失,風(fēng)險(xiǎn)分析也使得這種模型不適合簽合同的軟件開發(fā),因?yàn)轱L(fēng)險(xiǎn)分析會(huì)導(dǎo)致項(xiàng)目終止,而終止合同會(huì)導(dǎo)致違約訴訟,另外,對(duì)于小項(xiàng)目,風(fēng)險(xiǎn)分析的成本可能與整個(gè)項(xiàng)目的成本相當(dāng)。)4噴泉模型:定義(噴泉模型對(duì)軟件復(fù)用和生存周期中多項(xiàng)開發(fā)活動(dòng)的集成提供了支持,主要支持面向?qū)ο箝_發(fā)方法。)適用場(chǎng)合(噴泉模型以面向?qū)ο蟮能浖_發(fā)方法為基礎(chǔ),以用戶需求為動(dòng)力,以。)優(yōu)點(diǎn)(克服了瀑布模型不支持軟件重用和多項(xiàng)開發(fā)活動(dòng)集成的局限性。使開發(fā)過程具有迭代性和無(wú)間隙性。)缺點(diǎn)(要求對(duì)文檔的管理較為嚴(yán)格,審核的難度加大,尤其是面對(duì)可能隨時(shí)加入的各種信息需求與資料對(duì)象作為驅(qū)動(dòng)的模型。軟件復(fù)用與生命周期多開發(fā)活動(dòng)的集成。)

      6軟件工程的目標(biāo):1正確性:滿足用戶的需求 2可靠性:具有能夠防止因設(shè)計(jì),結(jié)構(gòu)等方面的不完善而造成的系統(tǒng)失效,具有挽回因操作不當(dāng)而造成軟件系統(tǒng)失效的能力 3有效性:充分利用計(jì)算機(jī)的時(shí)間和空間資源 4:可維護(hù)性:便于軟件增加新功能,改進(jìn)性能,修改錯(cuò)誤 5可重用性:軟件(部分)易于被再次利用 6:可追蹤性:對(duì)軟件進(jìn)行正向和反向追蹤的能力 7:可移植性:從一個(gè)環(huán)境搬到另一個(gè)環(huán)境的難易程度 8:可互操作性:多個(gè)軟件元素相互通訊,協(xié)同完成任務(wù)的能力

      7軟件工程的原則:1:抽象:關(guān)注事物基本,重要的部分,忽略不相關(guān)成分 2模塊化:將復(fù)雜的系統(tǒng)分解為由多個(gè)相對(duì)獨(dú)立的模塊加以實(shí)現(xiàn) 3信息隱藏:將模塊中的軟件信息封裝起來(lái),外部只知道其功能和對(duì)外接口,而不知道其內(nèi)部細(xì)節(jié) 4局部化:縮小軟件元素的作用范圍 5確定性:軟件開發(fā)過程中所有概念的表達(dá)應(yīng)是確定的,無(wú)歧義的,規(guī)范的 6一致性:整個(gè)軟件系統(tǒng)和開發(fā)過程使用統(tǒng)一的符號(hào),概念和術(shù)語(yǔ) 7完備性:軟件完全實(shí)現(xiàn)系統(tǒng)所需的功能和性能 8可驗(yàn)證性:軟件系統(tǒng)應(yīng)易于檢查,測(cè)試和評(píng)審

      需求分析

      1:需求的層次可分為4個(gè):1業(yè)務(wù)需求:反應(yīng)組織機(jī)構(gòu)或客戶對(duì)軟件高層的目標(biāo)要求2用戶需求:是用戶使用該軟件要完成的任務(wù)3功能需求:定義了軟件必須是實(shí)現(xiàn)的功能4非功能需求:對(duì)功能需求的補(bǔ)充。

      2:需求分析基本思想: 自頂向下,逐步求精 , 抽象/分解

      3:需求分析原則:正確使用數(shù)據(jù)流圖中的各個(gè)圖形要素。每個(gè)數(shù)據(jù)流、數(shù)據(jù)源、外部實(shí)體在數(shù)據(jù)字典中均必須定義、數(shù)據(jù)流圖中最底層的轉(zhuǎn)換必須在小說明中說明,父圖和子圖之間必須保持平衡,即父圖中某一轉(zhuǎn)換的輸入、輸出數(shù)據(jù)流和分解這個(gè)轉(zhuǎn)換的子圖的輸入、輸出數(shù)據(jù)流必須完全一致,精化過程適可而止。

      4:面向數(shù)據(jù)流分析方法運(yùn)用抽象和分解的技術(shù):頂級(jí)數(shù)據(jù)流圖:待開發(fā)的軟件系統(tǒng)被抽象描述為一個(gè)處理功能。自頂向下,功能分解:自頂向下、逐步求精;對(duì)每級(jí)數(shù)據(jù)流圖中比較復(fù)雜的處理功能進(jìn)行精化,生成下一級(jí)數(shù)據(jù)流圖。再分解、精化過程中,將生成的數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、外部實(shí)體、數(shù)據(jù)字典中加以定義,對(duì)底層轉(zhuǎn)換在小說明中進(jìn)行描述(底層轉(zhuǎn)化,不需要進(jìn)一步精化和分解)

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

      1:軟件總體設(shè)計(jì)主要是軟件結(jié)構(gòu)設(shè)計(jì),而詳細(xì)設(shè)計(jì)是軟件過程設(shè)計(jì)。2:軟件設(shè)計(jì)的模塊化思想:1.模塊化2.分解(抽象)3.信息隱藏與局部化4.模塊獨(dú)立性

      3:軟件設(shè)計(jì)準(zhǔn)則:1劃分模塊時(shí),應(yīng)注意保持模塊相對(duì)獨(dú)立性,模塊劃分的準(zhǔn)則是:將相關(guān)的各部分放在一起,而無(wú)關(guān)的東西不要放在一起。2:模塊的大小要適中。模塊過

      大,說明分解不夠,不易理解;模塊過小,模塊的數(shù)量增多,系統(tǒng)接口的復(fù)雜度增加。3模塊的接口要簡(jiǎn)單,清晰,含義明確,便于理解,易于實(shí)現(xiàn),測(cè)試和維護(hù)。4一個(gè)模塊的作用范圍應(yīng)該再起控制范圍之間,且判定所在的模塊,應(yīng)與受其影響的模塊在層次上盡量靠近。5軟件結(jié)構(gòu)的深度,寬度,扇入,扇出數(shù)應(yīng)當(dāng)適當(dāng)。6力求設(shè)計(jì)單入口和單出口,避免“病態(tài)連接”,以防止內(nèi)容耦合。7設(shè)計(jì)功能可預(yù)測(cè)模塊的模塊,但應(yīng)防止模塊功能過分局限。

      軟件需求分析與軟件設(shè)計(jì)之間的關(guān)系:通過信息描述、功能描述、行為描述、以及其他軟件需求規(guī)格說明,從而開始總體結(jié)構(gòu)設(shè)計(jì),過程設(shè)計(jì),數(shù)據(jù)設(shè)計(jì),完成軟件設(shè)計(jì)規(guī)格說明書,在進(jìn)行編碼。

      軟件設(shè)計(jì)的構(gòu)成:概要設(shè)計(jì),過程設(shè)計(jì),數(shù)據(jù)設(shè)計(jì),設(shè)計(jì)評(píng)審

      兩種設(shè)計(jì)思路:1.“由底向上”設(shè)計(jì):從一個(gè)局部開始,逐漸擴(kuò)展到整個(gè)系統(tǒng)的設(shè)計(jì)方法;2.“自頂向下,逐步求精”的設(shè)計(jì):從頂層開始逐層向下分解,直至系統(tǒng)的所有模塊都小到易于掌握為止。

      自頂向下的設(shè)計(jì):易于修改和擴(kuò)展,整體測(cè)試較易通過,需要進(jìn)行詳細(xì)的可行性論證 由底向上的設(shè)計(jì):可能導(dǎo)致較大的重新設(shè)計(jì),整體測(cè)試中可能在模塊接口間發(fā)現(xiàn)不一致,如果在可行性上出現(xiàn)問題,可以較早發(fā)現(xiàn)。

      軟件設(shè)計(jì)的構(gòu)成:管理觀點(diǎn):概要設(shè)計(jì),詳細(xì)設(shè)計(jì) 技術(shù)觀點(diǎn):數(shù)據(jù)設(shè)計(jì),系統(tǒng)結(jié)構(gòu)設(shè)計(jì),過程設(shè)計(jì),設(shè)計(jì)評(píng)審

      界面設(shè)計(jì)

      1:基于以用戶為中心的設(shè)計(jì)理念,界面設(shè)計(jì)的原則:1以理解性:界面上呈現(xiàn)的元素更貼近用戶的業(yè)務(wù)領(lǐng)域,并且具有簡(jiǎn)潔,自然,直觀等特性。界面中屏幕之間的跳轉(zhuǎn)關(guān)系簡(jiǎn)單,自然。2易操作性:對(duì)軟件系統(tǒng)的命令可以通過簡(jiǎn)單,直觀的方式來(lái)完成;界面應(yīng)減少用戶的操作次數(shù)和輸入信息量。3靈敏性:界面必須在合理的時(shí)間內(nèi)對(duì)用戶操作做出反應(yīng),對(duì)耗時(shí)較長(zhǎng)的內(nèi)部處理過程必須提供及時(shí)的進(jìn)度反饋,保持用戶與界面不間斷的雙向溝通。4一致性:界面應(yīng)在整個(gè)軟件系統(tǒng)范圍內(nèi)保持現(xiàn)實(shí)==顯示風(fēng)格,操作方式的一致性并符合業(yè)界規(guī)范。5容錯(cuò)性:要容忍用戶的誤操作,對(duì)于所有可能造成損害的額動(dòng)作,必須在用戶確定之后才進(jìn)行;允許永和對(duì)盡可能多的界面操作反悔;在用戶誤操作后系統(tǒng)具備適當(dāng)?shù)幕貜?fù)能力。6人性化:在適當(dāng)?shù)臅r(shí)候出現(xiàn)用戶恰好需要的幫助信息或建議,界面的布局和色彩應(yīng)使用戶感覺舒適,自然。

      2:界面設(shè)計(jì)的風(fēng)格:1語(yǔ)言界面:分為形式語(yǔ)言,自然語(yǔ)言,類自然語(yǔ)言。2圖形用戶界面:是當(dāng)前用戶界面的主流,廣泛應(yīng)用于各檔臺(tái)式微機(jī)和圖形工作站。3直接操縱用戶界面:更多的借物理的??臻g的或者形象的表示,而不是單純的文字或者數(shù)字的表示。對(duì)于大量的物理的,幾何空間的以及形象的任務(wù),直接操縱已表現(xiàn)出巨大的優(yōu)越性,然而在抽象的,復(fù)雜的應(yīng)用中,直接操縱用戶界面可能會(huì)表現(xiàn)出其局限性。4多媒體用戶界面:被認(rèn)為是在智能用戶界面和自然交互技術(shù)取得突破之前的一種過渡技術(shù)。多媒體用戶界面豐富了信息的表現(xiàn)形式,但基本上限于信息的存儲(chǔ)和傳輸方面,并沒有理解媒體信息的含義,這是其不足的地方,從而也限制了它的應(yīng)用場(chǎng)合。5多通道用戶界面:綜合采用視線,語(yǔ)音,收拾等新的交互通道,設(shè)備和交互技術(shù),是用戶利用多個(gè)通道以自然,并行,協(xié)作的方式進(jìn)行人機(jī)對(duì)話,通過整合來(lái)自多個(gè)通道的精確地和不精確的輸入來(lái)捕捉用戶的交互意圖,提高人際交互的自然性和高效性。

      3:UI特征:可使用性,靈活性,復(fù)雜性和可靠性(可使用性:使用簡(jiǎn)單,術(shù)語(yǔ)的標(biāo)準(zhǔn)化,一致化,help,能快速響應(yīng),有容錯(cuò)能力;靈活性:能滿足不同層次的用戶,提供不同詳細(xì)程度的響應(yīng)信息,定制、修改菜單的方式)

      程序設(shè)計(jì)

      1:編碼風(fēng)格:1節(jié)儉化:避免程序中不必要的動(dòng)作和變量;避免變量名的重載;減少程序的體積;減少程序的運(yùn)行時(shí)間,提高執(zhí)行速度;避免模塊冗余好重復(fù);檢查全局變量的副作用。2模塊化:把代碼劃分為內(nèi)聚度高,富有意義的功能塊,通常把長(zhǎng)且復(fù)雜的程序段或者子程序分解為小且定義良好的程序段;確保物理和邏輯功能密切相關(guān);限定一個(gè)模塊完成一個(gè)獨(dú)立的功能;檢查代碼的重復(fù)率。3簡(jiǎn)單化:采用簡(jiǎn)單和直截了當(dāng)?shù)乃惴?;使用?jiǎn)單的數(shù)據(jù)結(jié)構(gòu),避免使用多維數(shù)組,指針和復(fù)雜的表;注意對(duì)象命名的一致性;以手工方式簡(jiǎn)化算數(shù)和邏輯表達(dá)式。4結(jié)構(gòu)化:按標(biāo)準(zhǔn)化的次序說明數(shù)據(jù);堅(jiān)持統(tǒng)一的縮進(jìn)規(guī)則;值編制單入口,單出口的代碼;根據(jù)應(yīng)用背景排列程序個(gè)部分。5:文檔化:有效,適當(dāng)?shù)氖褂米⑨專WC注釋有意義,說明性強(qiáng);使用含義鮮明的變量名;協(xié)調(diào)使用程序段注釋和程序行注釋;始終堅(jiān)持編制文檔。6格式化:盡量使程序布局合理,清晰,明了;有效的使用編程空間(水平和垂直兩個(gè)方向),以助于讀者理解;適當(dāng)插入括號(hào),使表達(dá)式得運(yùn)算次序清晰直觀,排除二義性;有效的使用空格符以區(qū)分程序的不同部分,提高程序的可讀性。

      2:程序設(shè)計(jì)語(yǔ)言分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言。低級(jí)語(yǔ)言又分為機(jī)器語(yǔ)言和匯編語(yǔ)言,高級(jí)語(yǔ)言分為傳統(tǒng)高級(jí)語(yǔ)言和超高級(jí)語(yǔ)言。

      3:程序設(shè)計(jì)語(yǔ)言的選擇:1從用戶方面考慮:如果所開發(fā)系統(tǒng)的維護(hù)工作是由用戶自己來(lái)完成,那么需要根據(jù)與用戶的要求,選擇一種即有利于系統(tǒng)功能實(shí)現(xiàn),又是用戶所熟悉的程序設(shè)計(jì)語(yǔ)言。2從程序員方面考慮:如果和其他標(biāo)準(zhǔn)不矛盾,應(yīng)該選擇一種程序員熟悉的語(yǔ)言來(lái)進(jìn)行程序設(shè)計(jì),像對(duì)來(lái)說,熟悉的語(yǔ)言可以提高開發(fā)效率并減少錯(cuò)誤的發(fā)生。3軟件的可移植性要求:如果目標(biāo)系統(tǒng)將在不同的計(jì)算機(jī)環(huán)境下運(yùn)行,或者與其的使用壽命很長(zhǎng),則需要選擇一種標(biāo)準(zhǔn)化程度高,并且程序的可移植性好的語(yǔ)言實(shí)現(xiàn)設(shè)計(jì)。4應(yīng)用領(lǐng)域:看軟件的應(yīng)用領(lǐng)域,不同的語(yǔ)言又不同的適用范圍,合適的程序設(shè)計(jì)語(yǔ)言所提供的編程環(huán)境有利于程序員實(shí)現(xiàn)功能,在一定程度上簡(jiǎn)化編程,且有利于后期的測(cè)試和維護(hù)工作。

      測(cè)試

      1軟件測(cè)試的原則:是一個(gè)持續(xù)進(jìn)行的過程,而不是一個(gè)階段;測(cè)試一定

      有計(jì)劃,受控制,并提供足夠的時(shí)間和資源;應(yīng)該分優(yōu)先級(jí);應(yīng)當(dāng)有重點(diǎn);不是為了證明程序的正確性,而是為了證明寫程序不能工作;不可能是窮盡的,當(dāng)測(cè)試充分性安祖是就可以停止測(cè)試了;不能僅僅包括功能性驗(yàn)證,還應(yīng)當(dāng)包括性能,可靠性,可維護(hù)性和安全性等方面的驗(yàn)證。

      簡(jiǎn)述軟件測(cè)試的步驟:答:?jiǎn)卧獪y(cè)試—>集成測(cè)試—>確認(rèn)測(cè)試—>系統(tǒng)測(cè)試 單元測(cè)試:?jiǎn)卧獪y(cè)試針對(duì)程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試

      集成測(cè)試:組裝測(cè)試是指單元測(cè)基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝成一個(gè)完整系統(tǒng)進(jìn)行測(cè)試。

      確認(rèn)測(cè)試:確認(rèn)測(cè)試是指檢查軟的功能與性能是否與需要規(guī)格說明書中確定的指標(biāo)相符合,又稱有效性測(cè)試。

      系統(tǒng)測(cè)試:將軟件系統(tǒng)與其他部分集成后測(cè)試

      單元測(cè)試對(duì)應(yīng)編程,集成測(cè)試對(duì)應(yīng)軟件設(shè)計(jì),確認(rèn)測(cè)試對(duì)應(yīng)需求分析。

      在文檔上:?jiǎn)卧獪y(cè)試對(duì)應(yīng)源程序代碼和詳細(xì)設(shè)計(jì)說明書;集成測(cè)試對(duì)應(yīng)詳細(xì)設(shè)計(jì)說明書和概要設(shè)計(jì)說明書;確認(rèn)測(cè)試對(duì)應(yīng)概要設(shè)計(jì)說明書和需求分析說明書

      維護(hù)

      1:軟件維護(hù)的原因也是分類:1糾錯(cuò)性維護(hù)(糾正軟件中的錯(cuò)誤):為了

      診斷和改正軟件系統(tǒng)中潛藏的缺陷而進(jìn)行的活動(dòng)。2適應(yīng)性維護(hù)(對(duì)軟件進(jìn)行改造以適應(yīng)新的環(huán)境和平臺(tái)):適應(yīng)軟件運(yùn)行環(huán)境變化,如操作系統(tǒng)變更,硬件更新,而修改軟件的活動(dòng)。3完善性維護(hù)(對(duì)軟件進(jìn)行改造以增加新的功能,修改已有的功能):根據(jù)用戶在軟件使用過程中提出的一些新需求而實(shí)施的維護(hù)活動(dòng)。4預(yù)防性維護(hù)(對(duì)軟件進(jìn)行修改以防止未來(lái)發(fā)生錯(cuò)誤,或者提高軟件的可靠性和可維護(hù)性):優(yōu)化軟件系統(tǒng)結(jié)構(gòu)和可理解性,改善可維護(hù)性和可靠性。

      2:軟件維護(hù)的過程:1維護(hù)申請(qǐng)報(bào)告:軟件維護(hù)組織通常為用戶提供維護(hù)申請(qǐng)報(bào)告,用戶應(yīng)根據(jù)報(bào)告的格式和要求進(jìn)行填寫,內(nèi)容盡量詳細(xì)和準(zhǔn)確。然后,由維護(hù)管理員和系統(tǒng)管理員評(píng)價(jià)用戶提交的維護(hù)申請(qǐng)報(bào)告,確定其可行性。維護(hù)申請(qǐng)報(bào)告是由軟件組織的外部提交的文檔,它是計(jì)劃維護(hù)工作的基礎(chǔ)。2維護(hù)工作實(shí)施:①軟件維護(hù)工作流程:由軟件維護(hù)工作人員和用戶進(jìn)行協(xié)商,確定軟件維護(hù)的要求,具體到每一項(xiàng)維護(hù)工作的類型,修改的詳細(xì)方案,修改的進(jìn)度,達(dá)到的效果及最后的審核工作。②源程序修改流程:㈠分析和理解程序㈡設(shè)計(jì)程序修改計(jì)劃㈢按照制定的計(jì)劃修改代碼㈣修改程序的副作用㈤重新驗(yàn)證程序。3維護(hù)文檔整理:在軟件維護(hù)活動(dòng)進(jìn)行的同時(shí),需要記錄一些與維護(hù)工作有關(guān)的數(shù)據(jù)信息,這些信息科作為估計(jì)軟件維護(hù)的有效程度,確定軟件產(chǎn)品的質(zhì)量,確定維護(hù)得到實(shí)際開銷等工作的原始數(shù)據(jù)。3維護(hù)活動(dòng)評(píng)價(jià):軟件維護(hù)的最后一項(xiàng)工作是對(duì)整個(gè)維護(hù)活動(dòng)進(jìn)行評(píng)估,以來(lái)前面的維護(hù)文檔記錄,對(duì)維護(hù)工作做一些度量。

      3:影響可維護(hù)性的因素:1可理解性:表現(xiàn)在人們通過閱讀源程序代碼和相關(guān)文檔,了解程序的結(jié)構(gòu),功能及使用的容易程度,一個(gè)可理解性好的程序應(yīng)具有以下一些特征:編程環(huán)境(選擇高級(jí)程序設(shè)計(jì)語(yǔ)言);模塊化(模塊結(jié)構(gòu)良好,功能獨(dú)立);編程風(fēng)格(使用有意義的數(shù)據(jù)名和過程名,語(yǔ)句間層次關(guān)系清晰);文檔說明(必要的注釋,詳細(xì)的設(shè)計(jì)文檔和程序內(nèi)部的文檔)。2可測(cè)試性:軟件的可測(cè)試性取決于驗(yàn)證程序正確性的容易程度。3可修改性:是指修改程序的難易程度。應(yīng)該采用模塊化的程序設(shè)計(jì),模塊的邏輯結(jié)構(gòu)清晰,控制結(jié)構(gòu)不要過于復(fù)雜,嵌套結(jié)構(gòu)的層次也不要過深,且模塊具有低耦合,高內(nèi)聚的特點(diǎn),都有助于對(duì)程序進(jìn)行修改,且相對(duì)較少的引入新的錯(cuò)誤。4可靠性:可靠性越好,這樣有助于減少修改軟件而出現(xiàn)更多的錯(cuò)誤,有利于維護(hù)工作的進(jìn)行。5可移植性:應(yīng)該結(jié)構(gòu)良好,設(shè)計(jì)靈活,不依賴或較少依賴于某一具體計(jì)算機(jī)或操作系統(tǒng)的性能,對(duì)程序進(jìn)行局部修改就可運(yùn)行于新的計(jì)算機(jī)環(huán)境中。6可重用性:軟件系統(tǒng)中使用的可重用構(gòu)件越多,軟件的可靠性越好,改正性維護(hù)的需求越少,完善性和適應(yīng)性維護(hù)越容易。7執(zhí)行效率:編程時(shí),不能一味的追求高的效率,有時(shí)需要犧牲部分的執(zhí)行效率而提高程序的其他特性。

      4:提高可維護(hù)性的方法:1建立明確的軟件質(zhì)量和優(yōu)先級(jí):每一種質(zhì)量特性的相對(duì)重要性應(yīng)隨程序的用途及計(jì)算環(huán)境的不同而不同;應(yīng)當(dāng)對(duì)程序的質(zhì)量特性,在提出目標(biāo)的同時(shí)還必須規(guī)定他們的優(yōu)先級(jí)。2使用提高軟件質(zhì)量的技術(shù)和工具:模塊化;結(jié)構(gòu)化程序設(shè)計(jì);使用結(jié)構(gòu)化程序設(shè)計(jì)技術(shù),提高現(xiàn)有程序的可維護(hù)性。3選擇可維護(hù)的程序設(shè)計(jì)語(yǔ)言:選擇程序設(shè)計(jì)語(yǔ)言,首先需要考慮的事軟件設(shè)計(jì)的特性,然后選擇處理這方面應(yīng)用較強(qiáng)的語(yǔ)言實(shí)現(xiàn)。例如,F(xiàn)ORTRAN元以內(nèi)特別適合于工程和科學(xué)計(jì)算方面的額應(yīng)用;C語(yǔ)言適合于系統(tǒng)設(shè)計(jì)和實(shí)時(shí)應(yīng)用領(lǐng)域;COBOL語(yǔ)言適合于商業(yè)領(lǐng)域的應(yīng)用等。要充分考慮目標(biāo)系統(tǒng)的應(yīng)用范圍。4改進(jìn)程序的文檔:程序文檔是對(duì)程序總目標(biāo)是對(duì)程序總目標(biāo),程序各組成部分之間的關(guān)系,程序設(shè)計(jì)策略,程序?qū)崿F(xiàn)過程的歷史數(shù)據(jù)等的說明和補(bǔ)充;利用歷史文檔進(jìn)行維護(hù);歷史文檔有(系統(tǒng)開發(fā)日志,錯(cuò)誤記載,系統(tǒng)維護(hù)日志)。5進(jìn)行明確的質(zhì)量保證審查:審查可以檢測(cè)在開發(fā)和維護(hù)階段內(nèi)發(fā)生的質(zhì)量變化。

      5:維護(hù)的副作用:由于維護(hù)或者在維護(hù)過程中其它一些不恰當(dāng)?shù)男袨槎胄碌腻e(cuò)誤分三種:1代碼副作用;如修改或者刪除程序等引入新的錯(cuò)誤,可通過回歸測(cè)試發(fā)現(xiàn)代碼副作用。2數(shù)據(jù)副作用:因修改信息結(jié)構(gòu)而帶來(lái)的不良后果。3文檔副作用:由于在分析、設(shè)計(jì)文檔中未能準(zhǔn)確反應(yīng)軟件的修改情況而帶來(lái)的不良后果。

      OO

      1:面向?qū)ο?對(duì)象+類+繼承+聚合+多態(tài)+消息

      定義:一種是用對(duì)象(它將屬性和操作封裝在一起),消息傳遞,類,繼承,多態(tài)等來(lái)開發(fā)問題論域模型的解的范圍;一種基于對(duì)象,類,實(shí)例,繼承等概念的技術(shù);用對(duì)象作為建模的基本單位。

      2:面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn):1提供對(duì)象、方法和消息,使問題空間到解空間的變換非常直觀、合理消解“語(yǔ)義斷層”。2提供了抽象數(shù)據(jù)類型(類)、很自然、方便地遵循設(shè)計(jì)的重要原則——抽象、模塊化、信息隱藏。3OO方法被公認(rèn)為具有發(fā)展?jié)摿Γ鋬?yōu)越性在越來(lái)越多的軟件開發(fā)實(shí)踐中得到證實(shí)。

      3:OO如何體現(xiàn)經(jīng)典軟件工程基本原理:1.模塊化(面向?qū)ο箝_發(fā)方法把系統(tǒng)分解成模塊:對(duì)象就是模塊。它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊)。2.抽象(不僅支持過程抽象,而且支持?jǐn)?shù)據(jù)抽象)。3.信息隱藏(信息隱藏通過對(duì)象的封裝性來(lái)實(shí)現(xiàn))。4.低耦合(在面向?qū)ο蠓椒ㄖ校瑢?duì)象是最基本的模塊,因此,耦合主要指不同對(duì)象之間相互關(guān)聯(lián)的緊密程度。低耦合是設(shè)計(jì)的一個(gè)重要標(biāo)準(zhǔn),因?yàn)檫@有助于使得系統(tǒng)中某一部分的變化對(duì)其它部分的影響降到最低程度)。5.高內(nèi)聚(a操作內(nèi)聚b類內(nèi)聚c一般——具體內(nèi)聚)

      4.結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)的好處:1成功率和生產(chǎn)率顯著提高。2清晰的層次結(jié)構(gòu)、易閱讀和理解。3程序靜態(tài)結(jié)構(gòu)和它的動(dòng)態(tài)執(zhí)行情況一致,帶來(lái)很多好處。4控制結(jié)構(gòu)有確定的邏輯模式,編寫程序代碼只限于使用很少幾種直截了當(dāng)?shù)姆绞?,易讀懂易測(cè)試。5模塊化后,軟件可重用的代碼量增大。6程序邏輯結(jié)構(gòu)清晰,有利于軟件程序正確性證明。缺點(diǎn):內(nèi)存和運(yùn)行時(shí)間有所增加。

      UML 十種視圖,分為四類:用例圖,靜態(tài)圖,行為圖,實(shí)現(xiàn)圖

      用例圖:從外部用戶的角度描述系統(tǒng)的功能,并能指出功能的執(zhí)行者;靜態(tài)圖:包括類圖,對(duì)象圖和包圖;行為圖:包括交互圖(順序圖與協(xié)議圖)、狀態(tài)圖與活動(dòng)圖,它們從不同的側(cè)面刻畫系統(tǒng)的動(dòng)態(tài)行為;實(shí)現(xiàn)圖:包括構(gòu)件圖與部署圖,它們描述軟件實(shí)現(xiàn)系統(tǒng)的組成與分布狀況。

      思考題:1.你認(rèn)為軟件開發(fā)有什么特點(diǎn)? 面臨的主要問題是什么?答:特點(diǎn):軟件生產(chǎn)的自動(dòng)化不高。軟件生產(chǎn)成本不易控制。軟件的質(zhì)量難以保證。問題:1.軟件開發(fā)是高風(fēng)險(xiǎn)、高投入的項(xiàng)目2.開發(fā)時(shí)間長(zhǎng)、成本高3.無(wú)法證明正確性4.維護(hù)代價(jià)高5.開發(fā)、維護(hù)難于度量 6.很難按時(shí)交付使用

      2.軟件開發(fā)模型和軟件生命周期有何區(qū)別?答:軟件開發(fā)模型(Software Development Model)是指軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。一個(gè)軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生、成長(zhǎng)、成熟、衰亡等階段,一般稱為軟件生存周期(軟件生命周期)。

      3.軟件開發(fā)模型在軟件開發(fā)過程中有什么作用? 答:軟件開發(fā)模型能清晰、直觀地表達(dá)軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來(lái)作為軟件項(xiàng)目工作的基礎(chǔ)。所以沒有它是不行的。

      4.CASE工具和環(huán)境在軟件開發(fā)過程中有什么作用?答:CASE工具和環(huán)境有利于軟件開發(fā)過程的快速進(jìn)展,提高開發(fā)效率。

      5如果你是一名軟件項(xiàng)目經(jīng)理,你如何組織和開展需求分析工作(包括人員組織、方法和技術(shù)的采用、結(jié)果的評(píng)審等)?答:首先要對(duì)人力資源進(jìn)行分析,然后通

      過這些人力資源對(duì)目標(biāo)、資源、環(huán)境等方面需求分析

      6認(rèn)真理解各種需求分析技術(shù),分析各種技術(shù)的特點(diǎn)以及在需求分析階段的作用。答:1功能分解法:將一個(gè)系統(tǒng)看成由若干功能構(gòu)成的集合,每個(gè)功能又分成若干個(gè)子功能,子功能還可進(jìn)一步分解。此技術(shù)在需求分析階段就已涉及到軟件的設(shè)計(jì)。2信息建模法:從現(xiàn)實(shí)世界中找出實(shí)體,然后用屬性描述。其數(shù)據(jù)不封閉。3面向?qū)ο蟮姆治龇ǎ翰捎妙惤Y(jié)構(gòu),數(shù)據(jù)封裝和繼承等面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中的概念,使建模過程更加自然可靠。4結(jié)構(gòu)化分析法:由數(shù)據(jù)流圖和數(shù)據(jù)字典構(gòu)成,適用于數(shù)據(jù)處理領(lǐng)域問題,不太注重?cái)?shù)據(jù)結(jié)構(gòu)。

      7.面向數(shù)據(jù)流的需求分析方法能否自然、清晰、有效地獲取和刻劃

      用戶需求? 為什么?答:其優(yōu)點(diǎn)在于簡(jiǎn)單實(shí)用,易為開發(fā)者掌握,在成功率方面僅次

      于面向?qū)ο蟮姆椒?,特別適用于數(shù)據(jù)處理領(lǐng)域中的應(yīng)用,對(duì)其他領(lǐng)域中的應(yīng)用也基本適用。但對(duì)規(guī)模很大,特別復(fù)雜的項(xiàng)目不太適用,難以適應(yīng)需求的變化。

      8.面向

      數(shù)據(jù)流的需求分析方法是如何體現(xiàn)抽象、問題分解、建模等需求分析技術(shù)的?

      答:1信息流的類型2劃定流界3將DFD映射為程序結(jié)構(gòu)4提取層次控制結(jié)構(gòu)5通過設(shè)計(jì)復(fù)審和使用啟發(fā)策略進(jìn)一步精化模型結(jié)構(gòu)

      10為什么軟件結(jié)構(gòu)設(shè)計(jì)的好壞直接影響軟件的質(zhì)量?答:創(chuàng)建一個(gè)軟件系統(tǒng)與其它需要耗費(fèi)人力與財(cái)

      力的工程是一樣的。如果你要造一幢房子,在開始砌第一塊磚之前,你必須事先畫好建筑圖與藍(lán)圖。在你開始澆鑄水泥之前,你必須讓人評(píng)審你的藍(lán)圖并獲得通過,在軟件開發(fā)中事先做計(jì)劃也與此類似。

      11你認(rèn)為一個(gè)好的軟件結(jié)構(gòu)應(yīng)具備那些

      特征? 如何得到具有這些特征的軟件系統(tǒng)?

      答:特征:模塊化,抽象,逐步求

      精,信息隱藏與局部化,模塊獨(dú)立(高內(nèi)聚、低耦合)如何得到:

      1、改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性。

      2、模塊規(guī)模應(yīng)該適中。

      3、深度,寬度,扇出和扇入都應(yīng)適當(dāng)。深度表示軟件結(jié)構(gòu)中控制的層數(shù),它往往能夠粗略的標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。寬度是軟件結(jié)構(gòu)在同一層次上的模塊總數(shù)的最大值。一般來(lái)說,寬度越大系統(tǒng)就越復(fù)雜。扇出是指一個(gè)模塊直接調(diào)用的模塊的數(shù)目,經(jīng)驗(yàn)表明,一個(gè)設(shè)計(jì)的好的典型系統(tǒng)的平均扇出通常是3或4個(gè),太多或太少都不好。扇入是指一個(gè)模塊被別的多少個(gè)模塊直接調(diào)用。扇入越大越好。

      4、模塊的作用域應(yīng)該在控制域之內(nèi)

      5、力爭(zhēng)降低模塊接口的復(fù)雜程度

      6、設(shè)計(jì)單入口單出口的模塊

      7、模塊功能應(yīng)該可以預(yù)測(cè)。12.結(jié)構(gòu)化軟件設(shè)計(jì)過程是如何體現(xiàn)“自頂向下、逐步求精”的思想的?答:數(shù)據(jù)流圖的逐步分層(頂層,一層,二層。。)可以體現(xiàn)“自頂向下,逐步求精”的思想。

      3行軟件設(shè)你覺得在進(jìn)計(jì)時(shí),除了介紹的啟發(fā)式設(shè)計(jì)策略和優(yōu)化原則之外,還應(yīng)考慮哪些問題?答:考慮資源制約因素,良好地設(shè)計(jì)模型。

      14人機(jī)界面設(shè)計(jì)對(duì)軟件系統(tǒng)有何影響?答:UI即User Interface的簡(jiǎn)稱。UI設(shè)計(jì)是指對(duì)軟件的人機(jī)交互、操作邏輯、界面美觀的整體設(shè)計(jì)。好的UI設(shè)計(jì)不僅是讓軟件變得有個(gè)性有品味,還要讓軟件的操作變得舒適、簡(jiǎn)單、自由,充分體現(xiàn)軟件的定位和特點(diǎn)。其實(shí)UI就像工業(yè)產(chǎn)品中的工業(yè)造型設(shè)計(jì)一樣,是產(chǎn)品的重要賣點(diǎn)。一個(gè)電子產(chǎn)品擁有美觀的界面會(huì)給人帶來(lái)舒適的視覺享受,拉近人與商品的距離,是建立在科學(xué)性之上的藝術(shù)設(shè)計(jì)。

      15.Windows OS及Office軟件是如何體現(xiàn)UI實(shí)現(xiàn)的一般原則的?答:UI實(shí)現(xiàn)的一般原則:數(shù)據(jù)輸入界面:(1)數(shù)據(jù)輸入的一般規(guī)則(輸入確認(rèn)、對(duì)所有可能造成損害的動(dòng)作,堅(jiān)持要求確認(rèn)、在確認(rèn)的默認(rèn)值,按鍵上的考慮、明確取消、提供恢復(fù)、隱藏當(dāng)前不可用的命令、及時(shí)反饋和提示、提供上下文幫助)(2)數(shù)據(jù)輸入的方法(菜單、對(duì)話框、鍵盤輸入、聲音圖像輸入、條形碼、光學(xué)字符識(shí)別)Window OS 具有輸入確認(rèn),對(duì)可能造成損害的動(dòng)作要求確認(rèn),如卸載電腦程序;按鍵上的考慮,如大部分常用操作都會(huì)有快捷鍵;提供恢復(fù),如刪除了某文件,還可以恢復(fù);隱藏不可用的命令,如在左面單機(jī)右鍵是不可用的命令會(huì)灰度顯示;具有反饋和提示。輸入的方法有各種方式,如菜單、對(duì)話框等。Office 對(duì)可能造成的損害的動(dòng)作要求確認(rèn),如未保存文檔關(guān)閉程序時(shí);提供命令快捷鍵;不可用的命令會(huì)用灰度表示;提供幫助;提供鍵盤、圖像、菜單、字符輸入。交互控制界面:對(duì)話框、菜單、功能鍵、圖標(biāo)、用窗口劃分屏幕、命令語(yǔ)言Window OS 具有對(duì)話、菜單、功能快捷鍵、圖標(biāo)、命令語(yǔ)言、窗口劃分屏幕等各種交互界面。Office 具有對(duì)話、菜單、功能快捷鍵、圖標(biāo)等交互界面。數(shù)據(jù)顯示界面:(1)數(shù)據(jù)顯示規(guī)則(合理劃分顯示屏、顯示上下文相關(guān)信息、信息面向用戶、通過顏色大小字體等強(qiáng)化重要數(shù)據(jù)、符合常規(guī)習(xí)慣、用報(bào)表圖形表達(dá)更友好)(2)報(bào)表(3)圖形Window OS可用圖形、圖標(biāo)的形式顯示。Office可通過顏色大小字體等強(qiáng)化重要數(shù)據(jù)、還可用報(bào)表、圖形的形式顯示。

      16代碼風(fēng)格?為什么?答:使用標(biāo)準(zhǔn)的控制結(jié)構(gòu),盡可能使用庫(kù)函數(shù),首先應(yīng)當(dāng)考慮可讀性,注意goto語(yǔ)句的使用等當(dāng)程序很大時(shí),要強(qiáng)調(diào)良好一致的風(fēng)格,以便相互通信,減少因不協(xié)調(diào)而引起的問題。

      17只要設(shè)計(jì)足夠多的測(cè)試用例,軟件測(cè)

      試是否完全可以發(fā)現(xiàn)軟件中的所有錯(cuò)誤?答:這是錯(cuò)誤的說法。要想完全發(fā)現(xiàn)軟

      件的中的錯(cuò)誤時(shí)不可能的,在軟件測(cè)試的方法有白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試是測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)和有關(guān)信息,設(shè)計(jì)測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。黑盒測(cè)試是根據(jù)是否滿足功能和性能要求,設(shè)計(jì)測(cè)試用例,對(duì)程序進(jìn)行測(cè)試??墒且胗眠@兩種方法去測(cè)試軟件中的所有錯(cuò)誤是不可能的,也是非常不現(xiàn)實(shí)的,其所花的時(shí)間和計(jì)算量是巨大的。所以設(shè)計(jì)足夠多的用例去測(cè)試軟件是不可能完全發(fā)現(xiàn)軟件中的所有錯(cuò)誤。我們能做到的只是設(shè)計(jì)一個(gè)好的測(cè)試方法,用足夠多的測(cè)試用例去測(cè)試,然后盡可能的發(fā)現(xiàn)軟件的錯(cuò)誤。

      18為什么軟件維護(hù)在整個(gè)軟件生命周期中占有重要的地位?答:在軟件交付使用后,由于開發(fā)時(shí)測(cè)試的不徹底、不完全,必然會(huì)有一部分隱藏的錯(cuò)誤被帶到運(yùn)行階段來(lái)。這些隱藏下來(lái)的錯(cuò)誤在某些特定的使用環(huán)境下就會(huì)暴露。為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,所以要對(duì)其維護(hù)。

      19列出良好界面設(shè)計(jì)應(yīng)具有的特性,分析Microsoft Windows上的窗口、菜單、圖標(biāo)、對(duì)話框、警告等是否符合這些特性。答: 良好界面設(shè)計(jì)應(yīng)具有的特性可使用性(使用簡(jiǎn)單;術(shù)語(yǔ)的標(biāo)準(zhǔn)化,一致化;Help;能快速響應(yīng);有容錯(cuò)能力): Windows均提供Help,使用簡(jiǎn)單,有容錯(cuò)能力等。靈活性(能滿足不同層次用戶;提供不同詳細(xì)程度的響應(yīng)信息;定制、修改菜單的方式): Windows上的開始菜單可以定制,修改,可為不同用戶定義各自的桌面(工作環(huán)境)??煽啃裕ㄍ瓿晒δ艿那疤嵯?,盡可能簡(jiǎn)單;安全無(wú)故障): Windows可連續(xù)安全使用2-5天無(wú)故障(不宕機(jī))。

      第二篇:軟件工程總結(jié)

      軟件工程課程總結(jié)

      摘要:

      計(jì)算機(jī)是20世紀(jì)最重大的科學(xué)技巧成就之一,使當(dāng)代社會(huì)的經(jīng)濟(jì)、軍事、科研、教育、服務(wù)等方面在概念和技巧上發(fā)生了性的變化,對(duì)人類社會(huì)的進(jìn)步已經(jīng)并還將產(chǎn)生極為深刻的影響。目前,計(jì)算機(jī)是世界各發(fā)達(dá)國(guó)度劇烈競(jìng)爭(zhēng)的科學(xué)技巧領(lǐng)域之一。

      電子計(jì)算機(jī)早期功效主要是計(jì)算,后來(lái)已遠(yuǎn)遠(yuǎn)超越單純計(jì)算的功效,還可模擬、思維、進(jìn)行自適應(yīng)反饋處理等等,把它叫做“電腦”更為合實(shí)際。由于電子計(jì)算機(jī)功效的飛躍性發(fā)展,應(yīng)用于生產(chǎn)和生活的各個(gè)方面,直接和顯著地提高了生產(chǎn)、工作和生活的效率、節(jié)奏和水平,在軟科學(xué)研究和應(yīng)用中它也起著關(guān)鍵作用,因此它已被公認(rèn)是現(xiàn)代技巧的神經(jīng)中樞,是未來(lái)信息社會(huì)的心臟和錄魂。計(jì)算機(jī)學(xué)科分為四個(gè)領(lǐng)域,分別是計(jì)算機(jī)科學(xué),計(jì)算機(jī)工程,軟件工程和信息系統(tǒng)。

      正文:

      軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護(hù)軟件,以及如何把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái)的學(xué)科。包括項(xiàng)目管理,分析,設(shè)計(jì),程序的編寫,測(cè)試和質(zhì)量控制。它涉及到程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)、軟件開發(fā)工具、系統(tǒng)開發(fā)平臺(tái)、標(biāo)準(zhǔn)、設(shè)計(jì)模式等方面。

      學(xué)了《軟件工程》這門課程和一些有關(guān)資料后,感覺一些東西都曾經(jīng)接觸過,但在實(shí)際工作中有些理論要完全遵循可能還有些障礙,軟件工程只是提供了理論上的一些結(jié)論,但對(duì)項(xiàng)目的具體可操作性的規(guī)范的制定方面卻做的很少,《軟件工程》發(fā)展了幾十年,光是開發(fā)模型就達(dá)到了10多種,對(duì)不同的項(xiàng)目采用合適的開發(fā)模式,有些項(xiàng)目在不同的開發(fā)階段可能還要轉(zhuǎn)換開發(fā)模式,把它們靈活的應(yīng)用到實(shí)際中還是很困難的。

      軟件技術(shù)是信息技術(shù)產(chǎn)業(yè)的核心之一,軟件技術(shù)的發(fā)展是與信息技術(shù)產(chǎn)業(yè)的發(fā)展互相促進(jìn)的。當(dāng)今世界,信息技術(shù)正處于新一輪重大技術(shù)突破的前夜。預(yù)計(jì)今后 20~30 年是信息科學(xué)技術(shù)的變革突破期,可能導(dǎo)致 21 世紀(jì)下半葉一場(chǎng)新的信息技術(shù)革命。近年來(lái),從 IT 界到一些國(guó)家首腦,都高度關(guān)注以物聯(lián)網(wǎng)為標(biāo)志的新一輪信息技術(shù)的發(fā)展態(tài)勢(shì),認(rèn)為這是繼 20 世紀(jì) 80 年代 PC 機(jī)、90 年代互聯(lián)網(wǎng)、移動(dòng)通信網(wǎng)之后,將引發(fā) IT 業(yè)突破性發(fā)展的第三次 IT 產(chǎn)業(yè)化浪潮。每一次重大的技術(shù)變革都會(huì)引起企業(yè)間、產(chǎn)業(yè)間甚至國(guó)家間競(jìng)爭(zhēng)格局的重大變化,也促進(jìn)了軟件技術(shù)與軟件產(chǎn)業(yè)的重大變革與發(fā)展。

      近年來(lái),信息技術(shù)、軟件技術(shù)、軟件系統(tǒng)與軟件產(chǎn)業(yè)的發(fā)展備受關(guān)注,已有不少論述、分析與判斷。近10 年內(nèi)網(wǎng)絡(luò)技術(shù)經(jīng)歷寬帶化、移動(dòng)化和三網(wǎng)融合將走向基于 Ipv6 的下一代互聯(lián)網(wǎng),2010 年 1 月,國(guó)家 863 計(jì)劃信息技術(shù)領(lǐng)域辦公室和國(guó)家 863 計(jì)劃信息技術(shù)領(lǐng)域?qū)<医M,在上海舉辦“信息-物理融合系統(tǒng) CPS發(fā)展戰(zhàn)略論壇”,提出“信息-物理融合系統(tǒng) CPS 是一個(gè)綜合計(jì)算、網(wǎng)絡(luò)和物理環(huán)境的多維復(fù)雜系統(tǒng),是信息和物理世界的深度的融合交互,可實(shí)現(xiàn)大型工程系統(tǒng)的實(shí)時(shí)感知、動(dòng)態(tài)控制和信息服務(wù),使系統(tǒng)更加可靠、高效與實(shí)時(shí)協(xié)同,使得人類物理現(xiàn)實(shí)和虛擬邏輯逐步融合,具有重要而廣泛的應(yīng)用前景。業(yè)界關(guān)于軟件工程的代表性觀點(diǎn)創(chuàng)立與使用健全的工程原則,以便經(jīng)濟(jì)地獲得可靠且高效率的軟件。應(yīng)用系統(tǒng)化,遵從原則,可被計(jì)量的方法來(lái)發(fā)展、操作及維護(hù)軟件;也就是把工程應(yīng)用到軟件上。與開發(fā)、管理及更新軟件產(chǎn)品有關(guān)的理論、方法及工具。一種知識(shí)或?qū)W科,目標(biāo)是生產(chǎn)品質(zhì)良好、準(zhǔn)時(shí)交貨、符合預(yù)算,滿足用戶所需的軟件。實(shí)際應(yīng)用科學(xué)知識(shí)在設(shè)計(jì)、建構(gòu)電腦程序,與相伴而來(lái)所產(chǎn)生的文件,以及后續(xù)的操作和維護(hù)上。

      6使用與系統(tǒng)化生產(chǎn)和維護(hù)軟件產(chǎn)品有關(guān)之技術(shù)與管理的知識(shí),使軟件開發(fā)與修改可在有限的時(shí)間與費(fèi)用下進(jìn)行。

      7建造由工程師團(tuán)隊(duì)所開發(fā)之大型軟件系統(tǒng)有關(guān)的知識(shí)學(xué)科。對(duì)軟件分析、設(shè)計(jì)、實(shí)施及維護(hù)的一種系統(tǒng)化方法。系統(tǒng)化地應(yīng)用工具和技術(shù)于開發(fā)以計(jì)算機(jī)為主的應(yīng)用。

      10軟件工程是關(guān)于設(shè)計(jì)和開發(fā)優(yōu)質(zhì)軟件。

      《軟件工程》是一門綜合性和實(shí)踐性很強(qiáng)的核心課程,它屬于是一門交叉學(xué)科,包含有:軟件開發(fā)技術(shù)(軟件開發(fā)方法學(xué)、軟件開發(fā)過程、軟件工具和軟件工程環(huán)境)、軟件工程管理(軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué))。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、編碼、軟件測(cè)試、項(xiàng)目計(jì)劃與管理。

      本課程是面向準(zhǔn)備從事軟件開發(fā)的畢業(yè)生而開設(shè)的一門專業(yè)課程。針對(duì)計(jì)算機(jī)教學(xué)中軟件工程這一薄弱環(huán)結(jié),結(jié)合目前軟件開發(fā)商對(duì)人才的要求,對(duì)計(jì)算機(jī)專業(yè)的畢業(yè)生進(jìn)行軟件工程強(qiáng)化培訓(xùn),目的是使畢業(yè)生能夠了解和掌握軟件工程的基本理論和方法,并在實(shí)際軟件開發(fā)中運(yùn)用這些方法。

      我理解,軟件工程是按照工程學(xué)的管理方式,有組織、有計(jì)劃的,在一定的質(zhì)量基礎(chǔ)、時(shí)間限度和成本范圍內(nèi),實(shí)現(xiàn)功能明確的軟件系統(tǒng)。而且,軟件工程在企業(yè)范圍內(nèi)運(yùn)行,一定需要企業(yè)資源的支持,要與企業(yè)的經(jīng)營(yíng)、決策、管理體系聯(lián)系在一起,才能夠被踏踏實(shí)實(shí)的落實(shí)下來(lái)。

      軟件工程項(xiàng)目是一個(gè)需要一步一步的計(jì)算,分析思考而來(lái)的,需要不斷思考,研究不斷進(jìn)步,軟件業(yè)作為一個(gè)服務(wù)業(yè),要想得到發(fā)展,首先必須形成一個(gè)對(duì)軟件服務(wù)有迫切需要的市場(chǎng)。其次,這個(gè)市場(chǎng)中的消費(fèi)者必須具備足夠的購(gòu)買力。軟件的消費(fèi)群體簡(jiǎn)單一點(diǎn),可以分為個(gè)體消費(fèi)和企業(yè)消費(fèi)。中國(guó)的企業(yè)群體,數(shù)量龐大,但是質(zhì)量不高。上規(guī)模的企業(yè)極少。國(guó)內(nèi)目前能夠形成比較大規(guī)模的獨(dú)立市場(chǎng)的,肯定是小規(guī)模的軟件系統(tǒng)。

      隨著信息化時(shí)代的到來(lái)其地位越來(lái)越受到人們的重視,軟件工程從一個(gè)學(xué)科,或是某一個(gè)研究方向來(lái)說,人員僅僅是過程,方法的執(zhí)行者,所以人員素質(zhì)往往被忽略,軟件工程是一門實(shí)踐性很強(qiáng)的學(xué)科,所以在實(shí)際的軟件研究過程中,人員的素質(zhì)占有很重要的地位。要有出色的軟件問世,研發(fā)人員的素質(zhì)至關(guān)重要!

      作為軟件工程的學(xué)習(xí)者應(yīng)該不斷創(chuàng)新,不斷嘗試、實(shí)踐,不斷研究和學(xué)習(xí),中國(guó)的軟件工程技術(shù)依舊滯后于國(guó)外一些軟件工程技術(shù),作為新一代的學(xué)習(xí)者應(yīng)該擔(dān)當(dāng)起振興起中國(guó)軟件事業(yè),使中國(guó)科技得到高速發(fā)展!

      現(xiàn)在已經(jīng)是信息化時(shí)代,信息化潮流不斷涌現(xiàn),想要掌握主動(dòng)權(quán)就是掌握信息化的發(fā)展方向,這就需要我們不斷學(xué)習(xí),時(shí)間,研究,學(xué)習(xí)國(guó)外的先進(jìn)技術(shù),轉(zhuǎn)變自己的技術(shù),然后融合,創(chuàng)新。

      軟件技術(shù)不是一成不變的,是隨著社會(huì)的進(jìn)步的不斷進(jìn)步,不需要不斷的創(chuàng)新,不斷的改善的,需要我們不斷的學(xué)習(xí),不斷的研究,不斷進(jìn)步。

      第三篇:軟件工程總結(jié)

      1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b

      1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b

      Chapter 10 Self-Check Quiz

      1.In the most general sense a component is a modular building block for computer software.a.True b.False

      Answer: a(Section 10.1)

      2.In the context of object-oriented software engineering a component contains

      a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes

      Answer: d(Section 10.1.1)

      3.In traditional software engineering modules must serve in which of the following roles?

      a.Control component b.Infrastructure component c.Problem domain component d.All of the above

      Answer: d(Section 10.1.2)

      4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False

      Answer: b(Section 10.1.3)

      5.Which of the following is not one of the four principles used to guide component-level design?

      a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle

      Answer: d(Section 10.2.1)

      6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False

      Answer: a(Section 10.2.2)

      7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False

      Answer: a(Section 10.2.3)

      8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False

      Answer: b(Section 10.2.4)

      9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False

      Answer: b(Section 10.4.1)

      10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False

      Answer: a(Section 10.4.2)

      11.Which of these is a graphical notation for depicting procedural detail?

      a.box diagram b.decision table c.ER diagram d.flowchart

      Answer: d(Section 10.5.1)

      12.A decision table should be used

      a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component

      Answer: d(Section 10.5.2)

      13.A program design language(PDL)is often a

      a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture

      Answer: a(Section 10.5.3)

      14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False

      Answer: a(Section 10.6)

      15.Which of the following is not one of the major activities of domain engineering?

      a.analysis b.construction c.dissemination d.validation

      Answer: d(Section 10.6.1)

      16.Which of the following factors would not be considered during component qualification?

      a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required

      Answer: d(Section 10.6.2)

      17.Which is the following is a technique used for component wrapping?

      a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping

      Answer: b(Section 10.6.2)

      18.Which of the following is not one of the issues that form a basis for design for reuse?

      a.object-oriented programming b.program templates c.standard data d.standard interface protocols

      Answer: a(Section 10.6.3)

      19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above

      Answer: c(Section 10.6.4)

      1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)

      2.Which of the following is not a characteristic common to all design methods?

      a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics

      Answer: a(Section 8.2.2)

      3.Which of the following can be used to represent the architectural design of a piece of software?

      a.Dynamic models b.Functional models c.Structural models d.All of the above

      Answer: d(Section 8.3.2)

      4.Design patterns are not applicable to the design of object-oriented software?

      a.True b.False

      Answer: b(Section 8.3.3)

      5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False

      Answer: b(Section 8.3.5)

      6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality

      a.True b.False

      Answer: a(Section 8.3.6)

      7.Cohesion is a qualitative indication of the degree to which a module

      a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)

      8.Coupling is a qualitative indication of the degree to which a module

      a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)

      9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False

      Answer: b(Section 8.3.8)

      10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False

      Answer: a(Section 8.3.10)

      11.Which of the following is not one of the five design class types

      a.Business domain classes b.Entity classes c.Process classes d.User interface classes

      Answer: b(Section 8.3.13)

      12.Which design model elements are used to depict a model of information represented from the user’s view?

      a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements

      Answer: c(Section 8.4.1)

      13.Which design is equivalent to the floor plan of a house?

      a.Architectural design b.Component-level design c.Data design d.Interface design

      Answer: a(Section 8.4.2)

      14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?

      a.Architectural design b.Component-level design c.Data design d.Interface design

      Answer: d(Section 8.4.3)

      15.Which design model is equivalent to a set of detailed drawings for each room in a house?

      a.Architectural design b.Component-level design c.Data design d.Interface design

      Answer: b(Section 8.4.4)

      16.The deployment design elements specify the build order for the software components.a.True b.False

      Answer: b(Section 8.4.5)

      第四篇:軟件工程總結(jié)

      第一章軟件與軟件工程的概念

      軟件的概念:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,軟件包括程序,數(shù)據(jù),及其相關(guān)文檔的完整集合。程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù)是使程序能夠正確地處理信息的數(shù)據(jù)結(jié)構(gòu)。文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文資料。

      程序的最小單位是函數(shù)及子程序,程序與數(shù)據(jù)是分離的,在面向?qū)ο蟪绦蛟O(shè)計(jì)時(shí)代,程序的最小單位是類,在類中封裝了相關(guān)的數(shù)據(jù)及指令代碼。

      軟件的特性,判斷正誤:1.軟件是無(wú)形的、不可見的邏輯實(shí)體,因此,軟件是無(wú)法描述的。(錯(cuò))

      2、軟件的開發(fā)特性是指軟件需要大量手工勞動(dòng),難以自動(dòng)化生產(chǎn)。(對(duì))

      3、有缺陷的軟件就是廢品。(錯(cuò))

      4、軟件的生產(chǎn)指的是軟件的復(fù)制。(錯(cuò))

      5、由于軟件的開發(fā)充滿人的個(gè)性特點(diǎn),因此管理并不決定軟件開發(fā)的成?。ㄥe(cuò))。

      6、軟件的開發(fā)環(huán)境往往就是軟件的運(yùn)行環(huán)境,或者與其兼容。(對(duì))

      7、合格的軟件產(chǎn)品不需要維護(hù),軟件需要維護(hù)說明其質(zhì)量不合格。(錯(cuò))

      8、軟件可以不斷改進(jìn),因此軟件不需要廢棄。(錯(cuò))

      軟件的分類:1,系統(tǒng)軟件:能與計(jì)算機(jī)硬件緊密配合在一起,使計(jì)算機(jī)系統(tǒng)各個(gè)部件,相關(guān)的軟件和數(shù)據(jù)協(xié)調(diào),高效的工作的軟件。2,應(yīng)用軟件,是在系統(tǒng)軟件的支持下,在特定區(qū)域內(nèi)開發(fā),為特定目的服務(wù)的一類軟件。3,支撐軟件,也叫工具軟件,是協(xié)助用戶開發(fā)軟件的工具性軟件。4,可復(fù)用軟件,最初實(shí)現(xiàn)的典型的可復(fù)用軟件是各種標(biāo)準(zhǔn)函數(shù)庫(kù),通常是由計(jì)算機(jī)廠商提供的系統(tǒng)軟件的一部分。

      IEEE給出的定義:軟件工程是開發(fā),運(yùn)行,維護(hù)和修復(fù)軟件的系統(tǒng)方法。軟件的定義:計(jì)算機(jī)程序,方法,規(guī)則,相關(guān)的文檔資料一集在計(jì)算機(jī)上運(yùn)行時(shí)所必需的數(shù)據(jù)。

      軟件危機(jī)的典型表現(xiàn)

      1、成本太高,預(yù)算不準(zhǔn)

      2、超過預(yù)計(jì)時(shí)間

      3、軟件質(zhì)量標(biāo)準(zhǔn)不明確

      4、生產(chǎn)率低

      5、缺乏文檔資料,難以維護(hù)。原因:1,缺乏軟件開發(fā)的經(jīng)驗(yàn)和有關(guān)軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計(jì)劃很難制定。2.軟件人員與用戶的交流存在障礙,除了知識(shí)背景的差異,缺少合適的交流方法及需求描述工具。3,軟件開發(fā)過程不規(guī)范,缺少方法和規(guī)范的指導(dǎo)。4,隨著軟件規(guī)模的增大,其復(fù)雜性往往會(huì)呈指數(shù)級(jí)升高。5,缺少有效的軟件評(píng)測(cè)手段,提交用戶的軟件質(zhì)量差。

      軟件危機(jī)發(fā)生的主要原因有:

      1、遇到了無(wú)法解決的高難度技術(shù)問題(不是)

      2、無(wú)法招聘到足夠的編程高手(不是)

      3、軟件人員與用戶互相不理解(是)

      4、計(jì)劃和管理不科學(xué)、落實(shí)不力(是)

      5、軟件質(zhì)量標(biāo)準(zhǔn)不明確(是)

      軟件的質(zhì)量特性包括(選擇)問題1:

      1、功能性

      2、可靠性

      3、使用性

      4、經(jīng)濟(jì)性(不包括)

      軟件的質(zhì)量特性包括(選擇)問題2:

      1、效率

      2、可維護(hù)性

      3、可移植性

      4、經(jīng)濟(jì)性(不包括)

      軟件工程的目標(biāo)是運(yùn)用先進(jìn)的軟件開發(fā)技術(shù)和管理方法來(lái)提高軟件的質(zhì)量和生產(chǎn)率,也就是要以較短的周期,較低的成本生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,并最終實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)。軟件生存期:軟件的孕育,誕生,成長(zhǎng),成熟,衰亡的生存過程。軟件生存期由軟件定義,軟件開發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可劃分為若干個(gè)階段。

      2、軟件定義時(shí)期的任務(wù)主要任務(wù)是解決“做什么”的問題,確定工程的總目標(biāo)和可行性;實(shí)現(xiàn)工程目標(biāo)的策略及系統(tǒng)功能;估計(jì)需要的資源和成本;制訂工程進(jìn)度表。通常又分為3個(gè)階段:?jiǎn)栴}定義,可行性研究,需求分析。

      3、軟件開發(fā)時(shí)期的任務(wù)和包含階段主要任務(wù)是解決“如何做”的問題,設(shè)計(jì)和實(shí)現(xiàn)定義的軟件。由概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段組成。

      4、軟件運(yùn)行維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要,通常有4類維護(hù)活動(dòng):改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù)。開發(fā)過程中的典型文檔:軟件需求規(guī)格說明書。項(xiàng)目計(jì)劃。軟件測(cè)試計(jì)劃。軟件設(shè)計(jì)說明書。用戶手冊(cè)。軟件工程各個(gè)階段的基本任務(wù)

      1、問題定義與可行性研究:解決什么問題?能否解決問題?是否值得做?”

      2、需求分析:做什么

      3、軟件設(shè)計(jì):如何實(shí)現(xiàn)

      4、程序編碼和單元測(cè)試:實(shí)現(xiàn)設(shè)計(jì)

      5、集成和系統(tǒng)測(cè)試:組裝連接測(cè)試、功能驗(yàn)證測(cè)試

      6、軟件運(yùn)行和維護(hù):修改 第二章軟件工程方法與工具

      軟件工具:是指能支持軟件生存周期中某一階段(如系統(tǒng)定義,需求分析,設(shè)計(jì),編碼,測(cè)試,維護(hù)等)的需要而使用的軟件工具。

      需求分析工具

      1、結(jié)構(gòu)化圖形工具箱。通過數(shù)據(jù)流程圖DFD進(jìn)行功能分析。包括DFD圖形工具,實(shí)體-關(guān)系圖(E-R)圖形工具,Jackson圖形工具,Warnier圖形工具,Visio綜合工具,2、面向?qū)ο蠊ぞ?,Rational Rose,PowerDesigner,Visio 設(shè)計(jì)工具(1)概要設(shè)計(jì)工具:設(shè)計(jì)目標(biāo)軟件的體系結(jié)構(gòu)、控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。軟件的體系結(jié)構(gòu)通常用模塊結(jié)構(gòu)圖來(lái)描述。模塊的數(shù)據(jù)結(jié)構(gòu)通常用實(shí)體-關(guān)系圖來(lái)描述。Visio。Rational Rose 詳細(xì)設(shè)計(jì)工具。設(shè)計(jì)模塊的算法和內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。詳細(xì)設(shè)計(jì)描述方法有輸入-處理-輸出(IPO)圖。問題分析圖(PAD)。盒圖(NS圖)。流程圖(FC)。程序設(shè)計(jì)語(yǔ)言(PDL)。結(jié)構(gòu)化語(yǔ)言。判定表。判定樹

      第三章軟件需求獲取與結(jié)構(gòu)化分析方法 需求獲取的主要任務(wù)是與用戶溝通,了解系統(tǒng)或產(chǎn)品的目標(biāo)是什么,客戶或用戶想要實(shí)現(xiàn)什么,系統(tǒng)和產(chǎn)品如何滿足業(yè)務(wù)的要求,最終系統(tǒng)或產(chǎn)品如何用于日常工作。獲取并理解用戶的需求是軟件工程師所面對(duì)的最困難的任務(wù)之一。

      需求分析的困難體現(xiàn):系統(tǒng)的目標(biāo)或范圍問題;需求不準(zhǔn)確性問題;需求的易變問題

      需求獲取的任務(wù):發(fā)現(xiàn)和分析問題,并分析問題的原因,結(jié)果關(guān)系。與用戶進(jìn)行各種方式的交流,并使用調(diào)查研究方法收集信息。按照三個(gè)成分即數(shù)據(jù),過程和接口觀察問題的不同側(cè)面。將獲取的需求文檔化,形式有用例,決策表,決策樹等。需求獲取的原則:深入淺出,以流程為主線。

      獲取具體的需求的途徑1,與用戶交流。2,現(xiàn)有產(chǎn)品或競(jìng)爭(zhēng)產(chǎn)品的描述文檔。3,系統(tǒng)需求規(guī)格說明。4,當(dāng)前系統(tǒng)的問題報(bào)告和改進(jìn)要求。5,市場(chǎng)調(diào)查和用戶問卷調(diào)查。6,觀察用戶如何工作。

      關(guān)于需求獲取問題的認(rèn)識(shí)辨析:

      1、沒有與用戶交流就不可能獲取系統(tǒng)需求。(不能獲取準(zhǔn)確、全面的系統(tǒng)需求)

      2、沒有經(jīng)過與用戶交流而獲取的需求都是不真實(shí)的需求。(一些需求從用戶以外的途徑獲取)

      3、系統(tǒng)開發(fā)必須獨(dú)立完成,參考類似系統(tǒng)及技術(shù)文檔屬于抄襲行為,應(yīng)予避免。(系統(tǒng)開發(fā)包含研究行為,應(yīng)了解對(duì)手產(chǎn)品,取長(zhǎng)補(bǔ)短)

      4、系統(tǒng)開發(fā)包含改進(jìn)當(dāng)前系統(tǒng)的缺陷和不足。(對(duì))

      5、需求調(diào)查時(shí),用戶所說的需求未必是真實(shí)、準(zhǔn)確的需求,因此需求分析需要依賴用戶,但是不能過分迷信用戶。(對(duì),需求描述是困難的)

      6、觀察用戶如何工作也是一種需求調(diào)查行為。(對(duì))

      軟件需求分析階段的任務(wù):需求獲取,需求分析,需求定義,需求驗(yàn)證。完整性,正確性,合理性,可行性,充分性。

      結(jié)構(gòu)化分析方法:是一種建模技術(shù)。核心是數(shù)據(jù)字典。

      功能模型用數(shù)據(jù)流圖(DFD)來(lái)描述使用實(shí)體—關(guān)系圖(ER圖)建立數(shù)據(jù)模型。使用狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱狀態(tài)圖)建立系統(tǒng)行為模型。數(shù)據(jù)字典。加工規(guī)格說明。需求建模的依據(jù)是需求描述

      數(shù)據(jù)建模,ER圖,需要認(rèn)真看。

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

      結(jié)構(gòu)化設(shè)計(jì)方法是在模塊化,自頂向下逐步細(xì)化及結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來(lái)的,結(jié)構(gòu)化設(shè)計(jì)方法可分為兩類:一類是根據(jù)系統(tǒng)的數(shù)據(jù)流進(jìn)行設(shè)計(jì),稱為面向數(shù)據(jù)流的設(shè)計(jì),或稱過程驅(qū)動(dòng)設(shè)計(jì),另一類是根據(jù)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),稱為面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),或稱數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)。

      軟件的體系結(jié)構(gòu)設(shè)計(jì),模塊化設(shè)計(jì)都是分而治之策略的具體表現(xiàn)。模塊化是將整體軟件劃分為獨(dú)立命名且可獨(dú)立訪問的模塊,不同的模塊通常具有不用的功能或指責(zé),每個(gè)模塊可獨(dú)立開發(fā),測(cè)試,最后組裝成完整的軟件。模塊是構(gòu)成軟件的基本構(gòu)件。模塊并不是越小越好,當(dāng)模塊數(shù)目增加時(shí),每個(gè)模塊的規(guī)模將減小,開發(fā)單個(gè)模塊的成本確實(shí)減少了,但是隨著模塊數(shù)目增加,模塊之間關(guān)系的復(fù)雜程度也會(huì)增加,設(shè)計(jì)模塊間接口所需要的工作量也將增加。

      模塊的獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而與軟件系統(tǒng)中其他模塊的接口是簡(jiǎn)單的,若一個(gè)模塊只具有單一的功能且與其他模塊沒有太多的聯(lián)系,那么稱此模塊有獨(dú)立性。

      自頂向下,逐步細(xì)化:抽象是指忽視一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面,當(dāng)我們進(jìn)行軟件設(shè)計(jì)時(shí),設(shè)計(jì)開始時(shí)應(yīng)盡量提高軟件的抽象層次,按抽象級(jí)別從高到低進(jìn)行軟件設(shè)計(jì),將軟件的體系結(jié)構(gòu)按自頂向下方式,對(duì)各個(gè)層次的過程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計(jì)語(yǔ)言的語(yǔ)句能夠?qū)崿F(xiàn)為止,從而最后確定整個(gè)系統(tǒng)的體系結(jié)構(gòu),這就是自頂向下逐步細(xì)化過程。

      復(fù)用是指同一事物不做修改或稍加修改就可以多次重復(fù)使用,將服用的思想用于軟件開發(fā),稱為軟件復(fù)用。1是盡量使用已有的構(gòu)件。2是如果確實(shí)需要?jiǎng)?chuàng)建新的構(gòu)件,則在設(shè)計(jì)時(shí)應(yīng)該考慮將來(lái)的可重復(fù)使用性。軟件設(shè)計(jì)的階段與任務(wù):從工程管理的角度,可以將軟件設(shè)計(jì)分為概要設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段。從技術(shù)的角度,傳統(tǒng)的結(jié)構(gòu)化方法將軟件設(shè)計(jì)劃分為體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)和過程設(shè)計(jì)4部分;概要設(shè)計(jì)包括體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)。詳細(xì)設(shè)計(jì)即過程設(shè)計(jì),對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。

      軟件設(shè)計(jì)各項(xiàng)設(shè)計(jì)工作的依據(jù):體系結(jié)構(gòu)設(shè)計(jì),定義軟件模塊及其之間的關(guān)系,依賴于數(shù)據(jù)流圖。數(shù)據(jù)設(shè)計(jì),依賴于ER圖。接口設(shè)計(jì),依賴于頂層數(shù)據(jù)流圖。過程設(shè)計(jì):依賴于加工規(guī)格說明、狀態(tài)圖

      基于數(shù)據(jù)流方法的設(shè)計(jì)過程:1.復(fù)查并精化數(shù)據(jù)流圖。2.確定數(shù)據(jù)流圖中數(shù)據(jù)流的類型,典型的數(shù)據(jù)流類型有變換型數(shù)據(jù)流和事務(wù)型數(shù)據(jù)流。3.導(dǎo)出初始的軟件結(jié)構(gòu)圖。4.逐級(jí)分解。5.精化軟件結(jié)構(gòu)。6.導(dǎo)出接口描述和全局?jǐn)?shù)據(jù)結(jié)構(gòu)。

      軟件模塊結(jié)構(gòu)的改進(jìn)方法:1,模塊功能的完善化。2,消除重復(fù)功能,改善軟件結(jié)構(gòu)。3,模塊的作用范圍應(yīng)在控制范圍之內(nèi)。4,盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入。5,避免或減少使用病態(tài)連接。6,模塊的大小要適中。接口設(shè)計(jì)的依據(jù)是數(shù)據(jù)流圖中的自動(dòng)化系統(tǒng)邊界。

      自頂向下,逐步細(xì)化的設(shè)計(jì)過程主要包括兩個(gè)方面:一是將復(fù)雜問題的解法分析和細(xì)化成由若干個(gè)模塊組成的層次結(jié)構(gòu),二是將每個(gè)模塊的功能逐步分解細(xì)化為一系列的處理。第五章編碼

      編碼容易出現(xiàn)的風(fēng)格不足

      1、變量或函數(shù)名字缺乏具體含義

      2、變量或函數(shù)名字與其用途不符

      3、變量或函數(shù)未加上必要的注釋

      4、函數(shù)未說明其功能、參數(shù)的意義

      5、引用的符號(hào)未加以解釋和說明

      6、對(duì)循環(huán)等重要的程序語(yǔ)句未注釋

      7、對(duì)用到的重要庫(kù)函數(shù)沒有解釋說明

      8、對(duì)結(jié)構(gòu)體等復(fù)雜數(shù)據(jù)結(jié)構(gòu)的組成成分沒有解釋說明

      9、缺乏必要的提示語(yǔ)句 第六章軟件測(cè)試方法

      軟件測(cè)試是在軟件投入生產(chǎn)性運(yùn)行之前,對(duì)軟件需求分析,設(shè)計(jì)規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量控制的關(guān)鍵步驟。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。

      第五篇:軟件工程總結(jié)

      一、軟件工程概述

      1.軟件特點(diǎn)

      軟件:計(jì)算機(jī)程序(人們?yōu)榱藢?shí)現(xiàn)特定的功能而編制的一組指令集),軟件文檔,以及計(jì)算機(jī)程序運(yùn)行時(shí)所需要的數(shù)據(jù)。

      軟件是計(jì)算機(jī)系統(tǒng)中的邏輯成分,具有無(wú)形性,可復(fù)用性。

      2.軟件分類(1)按功能劃分:系統(tǒng)軟件、支撐軟件、應(yīng)用軟件。(2)按工作方式劃分:實(shí)時(shí)處理軟件、分時(shí)處理軟件、交互式軟件、批處理軟件。(3)按規(guī)模劃分:微型軟件、小型軟件、中型軟件、大型軟件。(4)按服務(wù)對(duì)象劃分:通用軟件、定制軟件。3.軟件發(fā)展階段(1)程序設(shè)計(jì)時(shí)代(20世紀(jì)50年代)。(2)程序系統(tǒng)時(shí)代(20世紀(jì)60年代)。(3)軟件工程時(shí)代(20世紀(jì)70年代起)。4.軟件危機(jī)

      (1)危機(jī)現(xiàn)象:軟件開發(fā)成本與進(jìn)度估計(jì)不準(zhǔn)確,軟件產(chǎn)品與用戶要求不一致,軟件產(chǎn)品質(zhì)量可靠性差,軟件文檔不完整不一致,軟件產(chǎn)品可維護(hù)性差,軟件生產(chǎn)率低。

      (2)危機(jī)原因:科學(xué)的工程化思想組織和指導(dǎo),完善的質(zhì)量保證體系,軟件文檔的不重視,軟件的不可見性,系統(tǒng)規(guī)模龐大,生產(chǎn)工程化程度低,對(duì)用戶需求關(guān)心不 夠,對(duì)維護(hù)不夠重視,開發(fā)工具自動(dòng)化程度低。5.軟件工程

      軟件工程:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來(lái)設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必須的相關(guān)文件資料。軟件工程是一門關(guān)于軟件開發(fā)與維護(hù)的工程學(xué)科,它涉及軟件生產(chǎn)的各個(gè)方面,能夠?yàn)榻?jīng)濟(jì)、高效地開發(fā)高質(zhì)量的軟件產(chǎn)品提供最有效的支持。

      軟件工程的目標(biāo):控制成本,滿足需求,提高質(zhì)量,提高可靠性,是產(chǎn)品易于維護(hù),移植,升級(jí)和使用,控制開發(fā)周期。

      (1)工程方法:結(jié)構(gòu)化方法、JSD方法、面向?qū)ο蠓椒?。?)軟件工具:具有自動(dòng)化特征的軟件開發(fā)集成支撐環(huán)境。(3)工程過程:在軟件工具支持下的一系列工程活動(dòng),基本活動(dòng)是軟件定義、軟件開發(fā)、軟件驗(yàn)證、軟件維護(hù)。(4)工程管理:項(xiàng)目規(guī)劃,項(xiàng)目資源調(diào)配,軟件產(chǎn)品控制。(5)工程原則:分階段生命周期計(jì)劃,階段評(píng)審制度,嚴(yán)格的產(chǎn)品控制,采用先進(jìn)的技術(shù),成果能清楚地審查,開發(fā)隊(duì)伍精練,不斷改進(jìn)工程實(shí)踐。(6)工程目標(biāo):開發(fā)成本較低,軟件功能能滿足用戶需求,軟件性能較好,軟件可靠性高,軟件易于使用、維護(hù)與移植,能按時(shí)完成開發(fā)任務(wù)并及時(shí)交付使用。(7)工程文化:包括工程價(jià)值、工程思想和工程行為三個(gè)方面的內(nèi)容。

      二、軟件工程過程模型 1.軟件生命周期 如同任何事物都有一個(gè)發(fā)生、發(fā)展、成熟直至衰亡的全過程一樣,軟件系統(tǒng)或軟件產(chǎn)品也有一個(gè)定義、開發(fā)、運(yùn)行維護(hù)直至被淘汰這樣的全過程,我們把軟件將要經(jīng)歷的這個(gè)全過程稱為軟件的生命周期。它包含:軟件定義、軟件開發(fā)、軟件運(yùn)行維護(hù)三個(gè)時(shí)期,并可以細(xì)分為可行性研究、項(xiàng)目計(jì)劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)與單元測(cè)試、系統(tǒng) 2 集成測(cè)試、系統(tǒng)確認(rèn)驗(yàn)證、系統(tǒng)運(yùn)行與維護(hù)等幾個(gè)階段。

      軟件定義期 軟件定義是軟件項(xiàng)目的早期階段,主要由軟件系統(tǒng)分析人員和用戶合作,針對(duì)有待開發(fā)的軟件系統(tǒng)進(jìn)行分析、規(guī)劃和規(guī)格描述,確定軟件是什么,為今后的軟件開發(fā)做準(zhǔn)備。這個(gè)時(shí)期往往需要分階段地進(jìn)行以下幾項(xiàng)工作。1.軟件任務(wù)立項(xiàng) 軟件項(xiàng)目往往開始于任務(wù)立項(xiàng),并需要以“軟件任務(wù)立項(xiàng)報(bào)告”的形式針對(duì)項(xiàng)目的名稱、性質(zhì)、目標(biāo)、意義和規(guī)模等作出回答,以此獲得對(duì)準(zhǔn)備著手開發(fā)的軟件系統(tǒng)的最高層描述。2.項(xiàng)目可行性分析 在軟件任務(wù)立項(xiàng)報(bào)告被批準(zhǔn)以后,接著需要進(jìn)行項(xiàng)目可行性分析??尚行苑治鍪轻槍?duì)準(zhǔn)備進(jìn)行的軟件項(xiàng)目進(jìn)行的可行性風(fēng)險(xiǎn)評(píng)估。因此,需要對(duì)準(zhǔn)備開發(fā)的軟件系統(tǒng)提出高層模型,并根據(jù)高層模型的特征,從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性這三個(gè)方面,以“可行性研究報(bào)告”的形式,對(duì)項(xiàng)目作出是否值得往下進(jìn)行的回答,由此決定項(xiàng) 目是否繼續(xù)進(jìn)行下去。3.制定項(xiàng)目計(jì)劃 在確定項(xiàng)目可以進(jìn)行以后,接著需要針對(duì)項(xiàng)目的開展,從人員、組織、進(jìn)度、資金、設(shè)備等多個(gè)方面進(jìn)行合理的規(guī)劃,并以“項(xiàng)目開發(fā)計(jì)劃書”的形式提交書面報(bào)告。4.軟件需求分析 軟件需求分析是軟件規(guī)格描述的具體化與細(xì)節(jié)化,是軟件定義時(shí)期需要達(dá)到的目標(biāo)。需求分析要求以用戶需求為基本依據(jù),從功能、性能、數(shù)據(jù)、操作等多個(gè)方面,對(duì)軟件系統(tǒng)給出完整、準(zhǔn)確、具體的描述,用于確定軟件規(guī)格。其結(jié)果將以“軟件需求規(guī)格說明書”的形式提交。在軟件項(xiàng)目進(jìn)行過程中,需求分析是從軟件定義到軟件開發(fā)的最關(guān)鍵步驟,其結(jié)論不僅是今后軟件開發(fā)的基本依據(jù),同時(shí)也是今后用戶對(duì)軟件產(chǎn)品進(jìn)行驗(yàn)收的基本依據(jù)。軟件開發(fā)期 在對(duì)軟件規(guī)格完成定義以后,接著可以按照“軟件需求規(guī)格說明書”的要求對(duì)軟件實(shí)施開發(fā),并由此制作出軟件產(chǎn)品。這個(gè)時(shí)期需要分階段地完成以下幾項(xiàng)工作。1.軟件概要設(shè)計(jì) 概要設(shè)計(jì)是針對(duì)軟件系統(tǒng)的結(jié)構(gòu)設(shè)計(jì),用于從總體上對(duì)軟件的構(gòu)造、接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)環(huán)境等給出設(shè)計(jì)說明,并以“概要設(shè)計(jì)說明書”的形式提交書面報(bào)告,其結(jié)果將成為詳細(xì)設(shè)計(jì)與系統(tǒng)集成的基本依據(jù)。模塊是概要設(shè)計(jì)時(shí)構(gòu)造軟件的基本元素,因此,概要設(shè)計(jì)中軟件也就主要體現(xiàn)在模塊的構(gòu)成與模塊接口這兩個(gè)方面上。結(jié)構(gòu)化設(shè)計(jì)中的函數(shù)、過程,面向?qū)ο笤O(shè)計(jì)中的類、對(duì)象,它們都是模塊。概要設(shè)計(jì)時(shí)并不需要說明模塊的內(nèi)部細(xì)節(jié),但是需要進(jìn)行全部的有關(guān)它們構(gòu)造的定義,包括功能特征、數(shù)據(jù)特征和接口等。在進(jìn)行概要設(shè)計(jì)時(shí),模塊的獨(dú)立性是一個(gè)有關(guān)質(zhì)量的重要技術(shù)性指標(biāo),可以使用模塊的內(nèi)聚、耦合這兩個(gè)定性參數(shù)對(duì)模塊獨(dú)立性進(jìn)行度量。2.軟件詳細(xì)設(shè)計(jì) 設(shè)計(jì)工作的第二步是詳細(xì)設(shè)計(jì),它以概要設(shè)計(jì)為依據(jù),用于確定軟件結(jié)構(gòu)中每個(gè)模塊的內(nèi)部細(xì)節(jié),為編寫程序提供最直接的依據(jù)。詳細(xì)設(shè)計(jì)需要從實(shí)現(xiàn)每個(gè)模塊功能的程序算法和模塊內(nèi)部的局部數(shù)據(jù)結(jié)構(gòu)等細(xì)節(jié)內(nèi)容 3 上給出設(shè)計(jì)說明,并以“詳細(xì)設(shè)計(jì)說明書”的形式提交書面報(bào)告。3.編碼和單元測(cè)試 編碼是對(duì)軟件的實(shí)現(xiàn),一般由程序員完成,并以獲得源程序基本模塊為目標(biāo)。編碼必須按照“詳細(xì)設(shè)計(jì)說明書”的要求逐個(gè)模塊地實(shí)現(xiàn)。在基于軟件工程的軟件開發(fā)過程中,編碼往往只是一項(xiàng)語(yǔ)言轉(zhuǎn)譯工作,即把詳細(xì)設(shè)計(jì)中的算法描述語(yǔ)言轉(zhuǎn)譯成某種適當(dāng)?shù)母呒?jí)程序設(shè)計(jì)語(yǔ)言或匯編語(yǔ)言。為了方便程序調(diào)試,針對(duì)基本模塊的單元測(cè)試也往往和編碼結(jié)合在一起進(jìn)行。單元測(cè)試也以“詳細(xì)設(shè)計(jì)說明書”為依據(jù),用于檢驗(yàn)每個(gè)基本模塊在功能、算法與數(shù)據(jù)結(jié)構(gòu)上是否符合設(shè)計(jì)要求。4.系統(tǒng)集成測(cè)試 所謂系統(tǒng)集成也就是根據(jù)概要設(shè)計(jì)中的軟件結(jié)構(gòu),把經(jīng)過測(cè)試的模塊,按照某種選定的集成策略,例如漸增集成策略,將系統(tǒng)組裝起來(lái)。在組裝過程中,需要對(duì)整個(gè)系統(tǒng)進(jìn)行集成測(cè)試,以確保系統(tǒng)在技術(shù)上符合設(shè)計(jì)要求,在應(yīng)用上滿足需求規(guī)格要求。5.系統(tǒng)確認(rèn)驗(yàn)證 在完成對(duì)系統(tǒng)的集成之后,接著還要對(duì)系統(tǒng)進(jìn)行確認(rèn)驗(yàn)證。系統(tǒng)確認(rèn)驗(yàn)證需要以用戶為主體,以需求規(guī)格說明書中對(duì)軟件的定義為依據(jù),由此對(duì)軟件的各項(xiàng)規(guī)格進(jìn)行逐項(xiàng)地確認(rèn),以確保已經(jīng)完成的軟件系統(tǒng)與需求規(guī)格的一致性。為了方便用戶在系統(tǒng)確認(rèn)期間能夠積極參入,也為了系統(tǒng)在以后的運(yùn)行過程中能夠被用戶正確使用,這個(gè)時(shí)期往往還需要以一定的方式對(duì)用戶進(jìn)行必要的培訓(xùn)。在完成對(duì)軟件的驗(yàn)收之后,軟件系統(tǒng)可以交付用戶使用,并需要以“項(xiàng)目開發(fā)總結(jié)報(bào)告”的書面形式對(duì)項(xiàng)目進(jìn)行總結(jié)。

      軟件運(yùn)行與維護(hù)期 軟件系統(tǒng)的運(yùn)行是一個(gè)比較長(zhǎng)久的過程,跟軟件開發(fā)機(jī)構(gòu)有關(guān)的主要任務(wù)是對(duì)系統(tǒng)進(jìn)行經(jīng)常性的有效維護(hù)。軟件的維護(hù)過程,也就是修正軟件錯(cuò)誤,完善軟件功能,由此使軟件不斷進(jìn)化升級(jí)的過程,以使系統(tǒng)更加持久地滿足用戶的需要。因此,對(duì)軟件的維護(hù)也可以看成為對(duì)軟件的再一次開發(fā)。在這個(gè)時(shí)期,對(duì)軟件的維護(hù)主要涉及三個(gè)方面的任務(wù),即改正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。2.瀑布模型 瀑布模型誕生于20世紀(jì)70年代,是最經(jīng)典的并獲得最廣泛應(yīng)用的軟件過程模型。瀑布模型中的“瀑布”是對(duì)這個(gè)模型的形象表達(dá),即山頂傾瀉下來(lái)的水,自頂向下、逐層細(xì)化。(1)特點(diǎn):線性化模型、階段具有里程碑特征、基于文檔的驅(qū)動(dòng)、階段評(píng)審機(jī)制。(2)作用:為軟件項(xiàng)目按規(guī)程管理提供了便利,為其他過程模型的推出提供了一個(gè)良好的 拓展平臺(tái)。(3)局限性:主要適合于需求明確且無(wú)大的需求變更的軟件開發(fā),但不適合分析初期需求 模糊的項(xiàng)目。3.原型模型(1)快速原型方法:是原型模型在軟件分析、設(shè)計(jì)階段的應(yīng)用,用來(lái)解決用戶對(duì)軟件系統(tǒng)在需求上的模糊認(rèn)識(shí),或用來(lái)試探某種設(shè)計(jì)是否能夠獲得預(yù)期結(jié)果。(2)原型進(jìn)化模型:針對(duì)有待開發(fā)的軟件系統(tǒng),先開發(fā)一個(gè)原型給用戶使用,然后根據(jù)用 戶的使用意見,對(duì)原型不斷修改,使它逐步接近,并最終到達(dá)開發(fā)目標(biāo)。

      下載軟件工程半開卷總結(jié)word格式文檔
      下載軟件工程半開卷總結(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)范文推薦

        軟件工程總結(jié)

        軟件工程的定義:軟件工程是將系統(tǒng)化的,規(guī)范化的,可度量的方法應(yīng)用于軟件的開發(fā),運(yùn)行和維護(hù)過程,即將工程化應(yīng)用于軟件中的方法的研究。軟件工程的定義2:開發(fā)運(yùn)行,維護(hù)和修復(fù)軟件的......

        無(wú)機(jī)材料顯微結(jié)構(gòu)分析半開卷復(fù)習(xí)題5篇范文

        第1、2章復(fù)習(xí)題一、名詞解釋1、光性均質(zhì)體/光性非均質(zhì)體2、雙折射3、光率體/光性指示體4、光性方位、5顯微結(jié)構(gòu)二、作圖題1、一軸晶負(fù)光性光率體的三個(gè)主要切面2、二軸晶正......

        2013年電大公共關(guān)系學(xué)半開卷(可直接打印)

        一、名詞解釋 1.企業(yè)視覺識(shí)別系統(tǒng):指在企業(yè)的全部可見事物所傳遞的視覺信息的一體化,是cI中項(xiàng)目最多、層面最廣、效果最直接的傳遞信息的形式。 2.社會(huì)組織:簡(jiǎn)稱組織,是指由一定的......

        軟件工程期末考試總結(jié)

        一、 1、1968年“軟件工程”誕生。 2、軟件定義:軟件是程序、數(shù)據(jù) 相關(guān)文檔的完整結(jié)合。其中,程序是能夠完成預(yù)訂功能和性能的可執(zhí)行的指令序列;數(shù)據(jù)是使程序能夠適當(dāng)?shù)奶幚硇?.....

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

        軟件工程知識(shí)點(diǎn)總結(jié) 軟件工程知識(shí)點(diǎn)總結(jié) 1.軟件危機(jī):指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。 2.軟件危機(jī)產(chǎn)生的原因:1.軟件本身的復(fù)雜性、難衡量的特點(diǎn);2.......

        軟件工程實(shí)習(xí)總結(jié)

        一.實(shí)習(xí)題目c/s模式下的網(wǎng)絡(luò)游戲平臺(tái)(類似于聯(lián)眾)二.題目要求a.平臺(tái)上至少能夠提供兩種游戲(僅供兩人參加)供用戶選擇。b. 服務(wù)器端實(shí)現(xiàn)用戶賬號(hào)、密碼的管理,監(jiān)控用戶上下線狀態(tài)......

        軟件工程考點(diǎn)總結(jié)[精選合集]

        第一章 1.軟件是程序和所使程序正確運(yùn)行所需的相關(guān)文檔和配置信息.軟件工程是一門工程學(xué)科,涉及軟件生產(chǎn)的各個(gè)方面.軟件過程是指制作軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。 2.軟件過......

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

        軟件工程是把系統(tǒng)的、有序的、可量化的方法應(yīng)用到軟件的開發(fā)、運(yùn)營(yíng)和維護(hù)上的過程。是一門指導(dǎo)軟件系統(tǒng)開發(fā)的工程學(xué)科,它以計(jì)算機(jī)理論及其他學(xué)科為指導(dǎo),采用工程化的概念、原......