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

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

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

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

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

      軟件工程教案

      時(shí)間:2019-05-15 07:30:56下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《軟件工程教案》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《軟件工程教案》。

      第一篇:軟件工程教案

      《軟件工程》教案

      《軟件工程》教學(xué)案

      一、課程的性質(zhì)與任務(wù)

      軟件工程課程是中央廣播電視大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的統(tǒng)設(shè)必修課,4學(xué)分,72學(xué)時(shí),其中講課46學(xué)時(shí),實(shí)驗(yàn)26學(xué)時(shí),開設(shè)一學(xué)期。

      軟件工程課程主要研究如何將工程化方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)過程之中。根據(jù)培養(yǎng)計(jì)算機(jī)應(yīng)用型人才的需要,本課程的任務(wù)是通過講述軟件的工程化開發(fā)方法和相關(guān)的開發(fā)工具、開發(fā)過程、開發(fā)規(guī)范,使學(xué)生了解軟件工程的本質(zhì),掌握常用的開發(fā)方法,并且能夠自覺地將軟件工程原理靈活地運(yùn)用于實(shí)際的軟件開發(fā)和維護(hù)過程中,提高學(xué)生的專業(yè)素質(zhì)。

      二、與本課相關(guān)課程

      先修課程:計(jì)算機(jī)基礎(chǔ)、數(shù)據(jù)庫原理、程序設(shè)計(jì)語言。

      后續(xù)課程:畢業(yè)設(shè)計(jì)。

      三、課程的學(xué)習(xí)要求

      1.掌握軟件的特點(diǎn)和軟件工程的概念。

      2.掌握結(jié)構(gòu)化分析和設(shè)計(jì)方法。

      3.掌握基于UML的面向?qū)ο蠓治龊驮O(shè)計(jì)方法。

      4.理解軟件測試的基本概念和測試策略。

      6.理解可行性分析方法和軟件維護(hù)的基本方法。

      7.了解良好的軟件編程風(fēng)格和編程規(guī)范。

      8.了解軟件項(xiàng)目管理、軟件配置管理的概念和方法。

      四、課程教學(xué)要求的層次

      本課程的教學(xué)要求分為掌握、理解和了解三個(gè)層次。掌握是在理解的基礎(chǔ)上加以靈活應(yīng)用;理解是能正確表達(dá)有關(guān)概念和方法的含義,并且能夠進(jìn)行簡單分析和判斷;了解即能正確判別有關(guān)概念和方法。

      在期末考核試卷中(涵蓋實(shí)驗(yàn)內(nèi)容),掌握的內(nèi)容約占總分?jǐn)?shù)的60%,理解的內(nèi)容約占30%,了解的內(nèi)容約占10%。

      五、教學(xué)環(huán)節(jié)

      1.自學(xué)

      自學(xué)是學(xué)生重要的學(xué)習(xí)手段,要求以文字教材為主,輔以錄像教材、CAI課件、網(wǎng)上教學(xué)資源進(jìn)行學(xué)習(xí)。錄像教材和CAI課件強(qiáng)化課程的重點(diǎn)、難點(diǎn)內(nèi)容,實(shí)驗(yàn)的演示與交互,案例分析等,可加深學(xué)生對課程內(nèi)容的理解,提高程序分析和設(shè)計(jì)能力。網(wǎng)上教學(xué)資源與教學(xué)進(jìn)度同步,側(cè)重于對學(xué)生教學(xué)過程的輔導(dǎo),也是師生、生生溝通的平臺,解決學(xué)生在學(xué)習(xí)過程中遇到的問題。自學(xué)可以采取個(gè)人和小組學(xué)習(xí)等方式,學(xué)生應(yīng)注意自學(xué)能力的培養(yǎng),保證必要的自學(xué)時(shí)間。

      2.面授輔導(dǎo)

      面授輔導(dǎo)由地方電大輔導(dǎo)教師擔(dān)任,由于本課程是一門理論性和實(shí)踐性均很強(qiáng)的課程,建議適當(dāng)增加面授學(xué)時(shí)比例。各地輔導(dǎo)教師應(yīng)以文字教材為依據(jù),采用講解、分析、作業(yè)講評等方式,講解課程的重點(diǎn)和難點(diǎn),思路與方法,進(jìn)行程序設(shè)計(jì)討論和分析、解答作業(yè)、指導(dǎo)實(shí)驗(yàn)等,培養(yǎng)學(xué)生學(xué)習(xí)、思考和分析解決問題的能力。

      3.實(shí)驗(yàn)

      實(shí)驗(yàn)是本課程的重要組成部分,由地方電大組織實(shí)施。學(xué)生應(yīng)認(rèn)真完成本課程所規(guī)定的實(shí)驗(yàn),未做實(shí)驗(yàn)或?qū)嶒?yàn)不及格者沒有資格參加本課程的期末考試。

      4.作業(yè)

      作業(yè)是鞏固和檢驗(yàn)學(xué)習(xí)效果的有效手段,中央電大統(tǒng)一下發(fā)形成性考核作業(yè)冊,學(xué)生應(yīng)根據(jù)學(xué)習(xí)進(jìn)度認(rèn)真完成。

      5.考核

      考核是對學(xué)生學(xué)習(xí)效果的檢查和驗(yàn)收。本課程的考核采用期末終結(jié)性考核和形成性考核相結(jié)合的方式。具體考核要求詳見《軟件工程課程考核說明》。

      第三部分 教學(xué)內(nèi)容和教學(xué)要求

      第1章概述

      教學(xué)內(nèi)容:

      (1)本課程的學(xué)習(xí)目的、教學(xué)內(nèi)容、學(xué)習(xí)方法簡介。

      (2)軟件的特點(diǎn)、軟件危機(jī)現(xiàn)象。

      (3)軟件工程定義、軟件工程7條基本原理。

      (4)軟件工程發(fā)展簡史。

      (5)軟件生存周期模型。

      (6)軟件工程的相關(guān)標(biāo)準(zhǔn)、規(guī)范、資料介紹。

      教學(xué)要求:

      (1)掌握軟件的特點(diǎn),軟件工程定義。

      (2)理解軟件工程7條基本原理,軟件危機(jī)的現(xiàn)象和軟件生存周期模型。

      (3)了解軟件工程發(fā)展簡史和軟件工程的相關(guān)標(biāo)準(zhǔn)、規(guī)范和資料。

      第2章可行性研究

      教學(xué)內(nèi)容:

      (1)可行性研究的任務(wù)和可行性分析的基本步驟。

      (2)可行性分析要考慮的主要因素。

      (3)成本/效益分析。

      教學(xué)要求:

      (1)掌握可行性研究的任務(wù)。

      (2)理解可行性分析的基本步驟。

      (3)了解成本/效益分析的估算模型和可行性分析要考慮的主要因素。

      第3章結(jié)構(gòu)化分析

      教學(xué)內(nèi)容:

      (1)結(jié)構(gòu)化分析的主要任務(wù)。

      (2)結(jié)構(gòu)化分析的各種工具:系統(tǒng)流程圖、數(shù)據(jù)流程圖、數(shù)據(jù)字典、IPO圖、功能結(jié)構(gòu)圖、實(shí)體關(guān)系圖。

      (3)結(jié)構(gòu)化分析的步驟。

      (4)需求分析規(guī)格說明書模板。

      (5)結(jié)構(gòu)化分析的實(shí)例——企業(yè)設(shè)備資產(chǎn)信息管理系統(tǒng)需求分析。

      教學(xué)要求:

      (1)掌握結(jié)構(gòu)化分析的方法和步驟,能夠獨(dú)立完成小型系統(tǒng)的結(jié)構(gòu)化分析。

      (2)掌握數(shù)據(jù)流程圖、數(shù)據(jù)字典的應(yīng)用。

      (3)理解需求分析規(guī)格說明書的主要內(nèi)容。

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

      教學(xué)內(nèi)容:

      (1)軟件設(shè)計(jì)的原則和影響設(shè)計(jì)的主要因素分析。

      (2)結(jié)構(gòu)化設(shè)計(jì)的基本概念。

      (3)結(jié)構(gòu)化設(shè)計(jì)的方法和步驟。

      (4)結(jié)構(gòu)化設(shè)計(jì)實(shí)例——企業(yè)設(shè)備資產(chǎn)信息管理系統(tǒng)概要設(shè)計(jì)。

      教學(xué)要求:

      (1)掌握結(jié)構(gòu)化設(shè)計(jì)的基本概念、方法和步驟。

      (2)理解軟件設(shè)計(jì)的原則。

      (3)了解影響軟件設(shè)計(jì)的主要因素。

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

      教學(xué)內(nèi)容:

      (1)面向?qū)ο蠡靖拍睢?/p>

      (2)軟件建模語言。

      (3)常用的UML圖。

      (4)RationalRose工具。

      教學(xué)要求:

      (1)掌握面向?qū)ο蟮幕靖拍睢?/p>

      (2)理解軟件建模語言。

      (3)了解常用的UML圖,RationalRose工具。

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

      教學(xué)內(nèi)容:

      (1)基于UML的面向?qū)ο蠓治龇椒ê筒襟E。

      (2)基于UML的面向?qū)ο蠓治鰧?shí)例——企業(yè)設(shè)備資產(chǎn)信息管理系統(tǒng)需求分析。

      (3)基于UML的面向?qū)ο笮枨蠓治鲆?guī)格說明書模板。

      教學(xué)要求:

      (1)掌握基于UML的面向?qū)ο笮枨蠓治龅姆椒?、步驟。

      (2)理解面向?qū)ο笮枨蠓治龊徒Y(jié)構(gòu)化分析之間的本質(zhì)區(qū)別。

      (3)了解面向?qū)ο笮枨笠?guī)格說明書的主要內(nèi)容。

      第7章面向?qū)ο笤O(shè)計(jì)

      教學(xué)內(nèi)容:

      (1)面向?qū)ο笤O(shè)計(jì)的概念。

      (2)基于UML的面向?qū)ο笤O(shè)計(jì)方法和步驟。

      (3)基于UML的面向?qū)ο笤O(shè)計(jì)實(shí)例——企業(yè)設(shè)備資產(chǎn)信息管理系統(tǒng)設(shè)計(jì)。

      (4)基于UML的面向?qū)ο笤O(shè)計(jì)規(guī)格說明書模板。

      教學(xué)要求:

      (1)掌握基于UML的面向?qū)ο笤O(shè)計(jì)方法和步驟。

      (2)理解面向?qū)ο笤O(shè)計(jì)的概念。

      (3)了解基于UML的面向?qū)ο笤O(shè)計(jì)規(guī)格說明書的主要內(nèi)容。

      第8章編程實(shí)現(xiàn)

      教學(xué)內(nèi)容:

      (1)程序設(shè)計(jì)語言的特點(diǎn)、分類,如何選擇程序設(shè)計(jì)語言。

      (2)良好的編程習(xí)慣。

      (3)編程標(biāo)準(zhǔn)和過程。

      教學(xué)要求:

      (1)掌握程序設(shè)計(jì)語言的特點(diǎn),培養(yǎng)良好的編程習(xí)慣。

      (2)理解編程標(biāo)準(zhǔn)。

      (3)了解選擇程序設(shè)計(jì)語言的一般原則。

      第9章軟件測試

      教學(xué)內(nèi)容:

      (1)軟件測試的概念。

      (2)黑盒測試和白盒測試方法。

      (3)單元測試。

      (4)集成測試。

      (5)系統(tǒng)測試。

      (6)驗(yàn)收測試。

      (7)軟件的可靠性分析。

      (8)軟件測試工具簡介。

      教學(xué)要求:

      (1)掌握軟件測試的概念。

      (2)掌握黑盒測試和白盒測試方法。

      (3)理解軟件可靠性分析的方法。

      (4)了解軟件測試工具。

      第10章軟件維護(hù)

      教學(xué)內(nèi)容:

      (1)軟件維護(hù)的基本概念。

      (2)軟件維護(hù)過程。

      (3)提高軟件可維護(hù)性的方法。

      教學(xué)要求:

      (1)掌握軟件維護(hù)的基本概念。

      (2)理解軟件的維護(hù)過程。

      (3)了解提高軟件可維護(hù)性的方法。

      第12章軟件工程管理

      教學(xué)內(nèi)容:

      (1)軟件項(xiàng)目管理介紹。

      (2)軟件配置管理介紹。

      (3)軟件過程管理介紹。

      教學(xué)要求:

      (1)了解軟件項(xiàng)目管理的基本概念和主要內(nèi)容。

      (2)了解軟件配置管理的基本概念和主要內(nèi)容。

      (3)了解軟件過程管理的主要內(nèi)容。

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

      授課日期: 11月13日

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

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

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

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

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

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

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

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

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

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

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

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

      總結(jié)下來,軟件危機(jī)需要應(yīng)對兩方面的問題:

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

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

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

      下面我將引入一個(gè)問題,大家思考一下,假設(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)嗎?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      那現(xiàn)在我們來說一下具體的軟件過程

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

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

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

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

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

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

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

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

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

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

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

      講完軟件的概念,那么軟件危機(jī)就比較容易理解了,軟件危機(jī)就是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。那么大家思考一下,能夠正常運(yùn)行的軟件可能會存在軟件危機(jī)嗎?答案是可能會。實(shí)際上,幾乎所有軟件都不同程度地存在這些問題。比方說,你在用QQ軟件時(shí),它不能與你的計(jì)算機(jī)硬件環(huán)境兼容或是不能滿足你的要求??偨Y(jié)下來,軟件危機(jī)需要應(yīng)對兩方面的問題:(1)如何開發(fā)軟件,以滿足對軟件日益增長的需求(2)如何維護(hù)數(shù)量不斷膨脹的已有軟件

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

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

      下面我將引入一個(gè)問題,大家思考一下,假設(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)嗎?

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

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

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

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

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

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

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

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

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

      1、用分階段的生命周期計(jì)劃嚴(yán)格管理

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

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

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

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

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

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

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

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

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

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

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

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

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

      概括地說,軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)3個(gè)時(shí)期組成,但每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段;這里我?guī)痛蠹铱偨Y(jié)了一下: 計(jì)劃---需求分析---設(shè)計(jì)---編碼---測試---運(yùn)行、維護(hù)

      在這里我解釋一下,在開發(fā)軟件時(shí)我們要制定計(jì)劃,做需求分析了解用戶想利用計(jì)算機(jī)軟件幫他們解決什么問題然后進(jìn)行設(shè)計(jì)它類似于工程師經(jīng)常使用的工程藍(lán)圖,它包含了詳細(xì)的設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能。接下來就是編碼實(shí)現(xiàn)功能,而測試則是使軟件達(dá)到預(yù)訂的要求,在這里并不是結(jié)束我們還要對其進(jìn)行運(yùn)行維護(hù)持續(xù)滿足用戶的需求。

      第四篇:軟件工程

      2.2軟件開發(fā)的基本策略

      人們都有自己的世界觀和方法論,能自然而然地運(yùn)用于生活和工作中。同樣,程序員腦子里的軟件工程觀念會無形地支配其怎么去做事情。軟件工程三十年的發(fā)展,已經(jīng)積累了相當(dāng)多的方法,但這些方法不是嚴(yán)密的理論。實(shí)踐人員不應(yīng)該教條地套用方法,更重要的是學(xué)會“選擇合適的方法”和“產(chǎn)生新方法”。有謀略才會有好的戰(zhàn)術(shù)。幾千年前,我們的祖先就在打鬧之際寫下了很多心得體會,被現(xiàn)代人很好地運(yùn)用于工業(yè)和商業(yè)。本節(jié)講述軟件開發(fā)中的三種基本策略:“復(fù)用”、“分而治之”、“優(yōu)化——折衷”。

      2.2.1復(fù)用

      復(fù)用就是指“利用現(xiàn)成的東西”,文人稱之為“拿來主義”。被復(fù)用的對象可以是有形的物體,也可以是無形的成果。復(fù)用不是人類懶惰的表現(xiàn)而是智慧的表現(xiàn)。因?yàn)槿祟惪偸窃诶^承了前人的成果,不斷加以利用、改進(jìn)或創(chuàng)新后才會進(jìn)步。所以當(dāng)我們歡度國慶時(shí),要搞清楚祖國遠(yuǎn)不止50歲,我們今天享用到的財(cái)富還有上下五千年人民的貢獻(xiàn)。進(jìn)步只是應(yīng)該的,不進(jìn)步則就可恥了。

      復(fù)用的內(nèi)涵包括了提高質(zhì)量與生產(chǎn)率兩者。由經(jīng)驗(yàn)可知,在一個(gè)新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般地可以相信成熟的東西總是比較可靠的(即具有高質(zhì)量),而大量成熟的工作可以通過復(fù)用來快速實(shí)現(xiàn)(即具有高生產(chǎn)率)。勤勞并且聰明的人們應(yīng)該把大部分的時(shí)間用在小比例的創(chuàng)新工作上,而把小部分的時(shí)間用在大比例的成熟工作中,這樣才能把工作做得又快又好。

      把復(fù)用的思想用于軟件開發(fā),稱為軟件復(fù)用。據(jù)統(tǒng)計(jì),世上已有1000億多行程序,無數(shù)功能被重寫了成千上萬次,真是浪費(fèi)哪。面向?qū)ο螅∣bject Oriented)學(xué)者的口頭禪就是“請不要再發(fā)明相同的車輪子了”。

      將具有一定集成度并可以重復(fù)使用的軟件組成單元稱為軟構(gòu)件(Software Component)。軟件復(fù)用可以表述為:構(gòu)造新的軟件系統(tǒng)可以不必每次從零做起,直接使用已有的軟構(gòu)件,即可組裝(或加以合理修改)成新的系統(tǒng)。復(fù)用方法合理化并簡化了軟件開發(fā)過程,減少了總的開發(fā)工作量與維護(hù)代價(jià),既降低了軟件的成本又提高了生產(chǎn)率。另一方面,由于軟構(gòu)件是經(jīng)過反復(fù)使用驗(yàn)證的,自身具有較高的質(zhì)量。因此由軟構(gòu)件組成的新系統(tǒng)也具有較高的質(zhì)量。利用軟構(gòu)件生產(chǎn)應(yīng)用軟件的過程如圖1.5所示。

      軟件復(fù)用不僅要使自己拿來方便,還要讓別人拿去方便,是“拿來拿去主義”。面向?qū)ο蠓椒ǎ琈icrosoft公司的COM規(guī)范 [Rogerson 1999],都能很好地用于實(shí)現(xiàn)大規(guī)模的軟件復(fù)用。

      2.2.2分而治之

      分而治之是指把一個(gè)復(fù)雜的問題分解成若干個(gè)簡單的問題,然后逐個(gè)解決。這種樸素的思想來源于人們生活與工作的經(jīng)驗(yàn),完全適合于技術(shù)領(lǐng)域。軟件人員在執(zhí)行分而治之的時(shí)候,應(yīng)該著重考慮:復(fù)雜問題分解后,每個(gè)問題能否用程序?qū)崿F(xiàn)?所有程序最終能否集成為一個(gè)軟件系統(tǒng)并有效解決原始的復(fù)雜問題?

      圖1.6表示了軟件領(lǐng)域的分而治之策略。諸如軟件的體系結(jié)構(gòu)設(shè)計(jì)、模塊化設(shè)計(jì)都是分而治之的具體表現(xiàn)。軟件的分而治之不可以“硬分硬治”。不像為了吃一個(gè)西瓜或是一只雞,揮刀斬成n塊,再把每塊塞進(jìn)嘴里粉碎攪拌,然后交由胃腸來消化吸收,象征復(fù)雜問題的西瓜或是雞也就此消失了。

      2.2.3優(yōu)化——折衷

      軟件的優(yōu)化是指優(yōu)化軟件的各個(gè)質(zhì)量因素,如提高運(yùn)行速度,提高對內(nèi)存資源的利用率,使用戶界面更加友好,使三維圖形的真實(shí)感更強(qiáng)等等。想做好優(yōu)化工作,首先要讓開發(fā)人員都有正確的認(rèn)識:優(yōu)化工作不是可有可無的事情,而是必須要做的事情。當(dāng)優(yōu)化工作成為一種責(zé)任時(shí),程序員才會不斷改進(jìn)軟件中的算法,數(shù)據(jù)結(jié)構(gòu)和程序組織,從而提高軟件質(zhì)量。

      著名的3D游戲軟件Quake,能夠在PC機(jī)上實(shí)時(shí)地繪制高度真實(shí)感的復(fù)雜場景。Quake的開發(fā)者能把很多成熟的圖形技術(shù)發(fā)揮到極致,例如把Bresenham畫線、多邊形裁剪、樹遍歷等算法的速度提高近一個(gè)數(shù)量級。我第一次看到Quake時(shí)不僅感到震動,而且深受打擊。這個(gè)PC游戲軟件的技術(shù)水平已經(jīng)遠(yuǎn)勝于我所見識到的國內(nèi)領(lǐng)先的圖形學(xué)相關(guān)科研成果。這對我們?nèi)找媸⑿械狞c(diǎn)到完止的研發(fā)工作真是莫大的諷刺。所以當(dāng)我們開發(fā)的軟件表現(xiàn)出很多不可救藥的病癥時(shí),不要怨機(jī)器差。真的是我們自己沒有把工作做好,寫不好字卻嫌筆鈍。

      就假設(shè)我們經(jīng)過思想教育后,精神抖擻,隨時(shí)準(zhǔn)備為優(yōu)化工作干上六天七夜。但愿意做并不意味著就能把事情做好。優(yōu)化工作的復(fù)雜之處是很多目標(biāo)存在千絲萬縷的關(guān)系,可謂數(shù)不清理還亂。當(dāng)不能夠使所有的目標(biāo)都得到優(yōu)化時(shí),就需要“折衷”策略。

      軟件中的折衷策略是指通過協(xié)調(diào)各個(gè)質(zhì)量因素,實(shí)現(xiàn)整體質(zhì)量的最優(yōu)。就象黨支部副書記扮演和事佬的角色:“…為了使整個(gè)組織具有最好的戰(zhàn)斗力,我們要重用幾個(gè)人,照顧一些人,在萬不得已的情況下委屈一批人”。

      軟件折衷的重要原則是不能使某一方損失關(guān)鍵的職能,更不可以象“舍魚而取熊掌”那樣拋棄一方。例如3D動畫軟件的瓶頸通常是速度,但如果為了提高速度而在程序中取消光照明計(jì)算,那么場景就會喪失真實(shí)感,3D動畫也就不再有意義了(如果人類全是色盲,計(jì)算機(jī)圖形學(xué)將變得異常簡單)。

      人都有惰性,如果允許濫用折衷的話,那么一當(dāng)碰到困難,人們就會用拆東墻補(bǔ)西墻的方式去折衷,不再下苦功去做有意義的優(yōu)化。所以我們有必要為折衷制定嚴(yán)正的立場:在保證其它因素不差的前提下,使某些因素變得更好。

      下面讓我們用“優(yōu)化——折衷”的策略解決“魚和熊掌不可得兼”的難題。

      問題提出:假設(shè)魚每千克10元,熊掌每千克一萬元。有個(gè)倔脾氣的人只有20元錢,非得要吃上一公斤美妙的“熊掌燒魚”,怎么辦?

      解決方案:化9元9角9分錢買999克魚肉,化10元錢買1克熊掌肉,可做一道“熊掌戲魚”菜。剩下的那一分錢還可建立獎(jiǎng)勵(lì)基金。

      2.3一些不正確的觀念

      本節(jié)例舉并分析一些不正確的軟件工程觀念,可幫助初學(xué)者少犯相似的錯(cuò)誤。

      觀念之一:我們擁有一套講述如何開發(fā)軟件的書籍,書中充滿了標(biāo)準(zhǔn)與示例,可以幫助我們解決軟件開發(fā)中遇到的任何問題。

      客觀情況:好的參考書無疑能指導(dǎo)我們的工作。充分利用書籍中的方法、技術(shù)和技巧,可以有效地解決軟件開發(fā)中大量常見的問題。但實(shí)踐者并不能因此依賴于書籍,這是因?yàn)椋海?)現(xiàn)實(shí)的工作中,由于條件千差萬別,即使是相當(dāng)成熟的軟件工程規(guī)范,常常也無法套用。(2)軟件技術(shù)日新月異,沒有哪一種軟件標(biāo)準(zhǔn)能長盛不衰。祖?zhèn)髅胤皆谀承╊I(lǐng)域很吃香,而在軟件領(lǐng)域則意味著落后。

      觀念之二:我們擁有最好的開發(fā)工具、最好的計(jì)算機(jī),一定能做出優(yōu)秀的軟件。

      客觀情況:良好的開發(fā)環(huán)境只是產(chǎn)出成果的必要條件,而不是充分條件。如果擁有好環(huán)境的是一群庸人,難保他們不干出南轅北轍的事情。

      觀念之三:如果我們落后于計(jì)劃,可以增加更多的程序員來解決。

      客觀情況:軟件開發(fā)不同于傳統(tǒng)的農(nóng)業(yè)生產(chǎn),人多不見得力量大。如果給落后于計(jì)劃的項(xiàng)目增添新手,可能會更加延誤項(xiàng)目。因?yàn)椋海?)新手會產(chǎn)生很多新的錯(cuò)誤,使項(xiàng)目混亂。(2)老手向新手解釋工作以及交流思想都要花費(fèi)時(shí)間,使實(shí)際開發(fā)時(shí)間更少。所以科學(xué)的項(xiàng)目計(jì)劃很重要,不在乎計(jì)劃能提前多少,重在恰如其分。如果用“大躍進(jìn)”的方式奔向共產(chǎn)主義,只會產(chǎn)生倒退的后果。

      觀念之四:既然需求分析很困難,不管三七二十一先把軟件做了再說,反正軟件是靈活的,隨時(shí)可以修改。

      客觀情況:對需求把握得越準(zhǔn)確,軟件的修修補(bǔ)補(bǔ)就越少。有些需求在一開始時(shí)很難確定,在開發(fā)過程中要不斷地加以改正。軟件修改越早代價(jià)越少,修改越晚代價(jià)越大,就跟治病一樣道理。

      2.4一些有爭議的觀念

      本節(jié)探討一些有爭議的觀念,目的不在于得出“正確”或“錯(cuò)誤”的評斷,而在于爭議會激發(fā)更多理性的思考。

      爭議之一:如果軟件運(yùn)行較慢,是換一臺更快的計(jì)算機(jī),還是設(shè)計(jì)一種更快的算法?

      作者觀點(diǎn):如果開發(fā)軟件的目的是為了學(xué)習(xí)或是研究,那么應(yīng)該設(shè)計(jì)一種更快的算法。如果該軟件已經(jīng)用于商業(yè),則需謹(jǐn)慎考慮:若換一臺更快的計(jì)算機(jī)能解決問題,則是最快的解決方案。改進(jìn)算法雖然可以從根本上提高軟件的運(yùn)行速度,但可能引入錯(cuò)誤以及延誤進(jìn)程。技術(shù)狂毫無疑問會選擇后者,因?yàn)樗麄冇X得放棄任何可以優(yōu)化的機(jī)會就等于犯罪。

      類似的爭議還有:是買現(xiàn)成的程序,還是徹底自己開發(fā)?技術(shù)人員和商業(yè)人士常常會有不同的選擇。

      爭議之二:有最好的軟件工程方法,最好的編程語言嗎?

      作者觀點(diǎn):在軟件領(lǐng)域永遠(yuǎn)沒有最好的,只有更好的。能解決問題的都是好方法或是好語言。程序員在最初學(xué)習(xí)Basic、Fortran、Pascal、C、C++等語言時(shí)會感覺一個(gè)比一個(gè)好,不免有喜新厭舊之舉。而如今 的Visual Basic、Delphi、Visual C++、Java等語言各有所長,真的難分優(yōu)劣。開發(fā)人員應(yīng)該根據(jù)客觀條件,選擇自己熟悉的方法和語言,才能保證合格的質(zhì)量與生產(chǎn)率。

      程序設(shè)計(jì)是自由與快樂的事情,不要發(fā)誓忠于某某主義而自尋煩惱。

      爭議之三:編程時(shí)是否應(yīng)該多使用技巧?

      作者觀點(diǎn):就軟件開發(fā)而言,技巧的優(yōu)點(diǎn)在于能另辟蹊徑地解決一些問題,缺點(diǎn)是技巧并不為人熟知。若在程序中用太多的技巧,可能會留下隱患,別人也難以理解程序。鑒于一個(gè)局部的優(yōu)點(diǎn)對整個(gè)系統(tǒng)而言是微不足道的,而一個(gè)錯(cuò)誤則可能是致命的。作者建議用自然的方式編程,少用技巧。

      《狼三則》的故事告訴我們“失敗的技巧通常是技倆”。當(dāng)我們在編程時(shí)無法判斷是用了技巧還是用了技倆,那就少用?!顿u油翁》的故事又告訴我們“熟能生巧”,表明技巧是自然而然產(chǎn)生的,而不是賣弄出來的。賣油翁的絕技是可到中央電視臺表演的,而他老人家卻謙虛地說:“沒啥沒啥,用熟了而已”。

      爭議之四:軟件中的錯(cuò)誤是否可按嚴(yán)重程度分等級?

      作者觀點(diǎn):在定量分析時(shí),可以將錯(cuò)誤分等級,以便于管理。微軟的一些開發(fā)小組將錯(cuò)誤分成四個(gè)等級 [Cusumano 1996],如表1.1所示。

      一級嚴(yán)重:錯(cuò)誤導(dǎo)致軟件崩潰。

      二級嚴(yán)重:錯(cuò)誤導(dǎo)致一個(gè)特性不能運(yùn)行并且沒有替代方案。

      三級嚴(yán)重:錯(cuò)誤導(dǎo)致一個(gè)特性不能運(yùn)行但有替代方案。

      四級嚴(yán)重:錯(cuò)誤是表面化的或是微小的。

      表1.1 錯(cuò)誤的四個(gè)等級

      上述分類是非常技術(shù)性的,并不是普適的。假設(shè)某個(gè)財(cái)務(wù)軟件有兩個(gè)錯(cuò)誤:錯(cuò)誤A使該軟件死掉,錯(cuò)誤B導(dǎo)致工資計(jì)算錯(cuò)誤。按表1.1分類,錯(cuò)誤A屬一級嚴(yán)重,錯(cuò)誤B屬二級嚴(yán)重。但事實(shí)上B要比A嚴(yán)重。工資算多了或者算少了,將會使老板或員工遭受經(jīng)濟(jì)損失。而錯(cuò)誤A只使操作員感到厭煩,并沒有造成經(jīng)濟(jì)損失。另一個(gè)示例是操作手冊寫錯(cuò),按表1.1分類則屬四級嚴(yán)重,但這種錯(cuò)誤可能導(dǎo)致機(jī)毀人亡。

      開發(fā)人員應(yīng)該意識到:所有的錯(cuò)誤都是嚴(yán)重的,不存在微不足道的錯(cuò)誤。這樣才能少犯錯(cuò)誤。

      2.5小 結(jié)

      軟件工程學(xué)科發(fā)展到今天,已經(jīng)有了很多方法和規(guī)范,學(xué)之不盡。本章只在宏觀上討論了軟件工程的一些

      思想,更具體的內(nèi)容將在后面的章節(jié)論述。無論是什么好方法,貴在理解與靈活運(yùn)用,而不可當(dāng)成靈丹妙藥,不象“吃了腦黃金或腦白金,就能使一億人先聰明起來”。

      3程序員與程序經(jīng)理

      工作在第一線的軟件開發(fā)人員是程序員和程序經(jīng)理,他們決定著軟件的命運(yùn)。良好的程序員隊(duì)伍和出色的管理是軟件項(xiàng)目成功的必要條件。管理不是管制,不是去卡住人家的脖子,因?yàn)槌绦騿T不是一群野鴨子。管理的目的是讓大家一起把工作做好,并且讓各人獲得各自的快樂和滿足。當(dāng)一個(gè)組織被出色地領(lǐng)導(dǎo)時(shí),雇員甚至不知道他們已被領(lǐng)導(dǎo)。在項(xiàng)目完成時(shí),他們會自豪地說:“看看我們通過努力取得的成績吧”。所以管理者不能老惦記著自己是一個(gè)官,而應(yīng)時(shí)刻意識到自己是責(zé)任的主要承擔(dān)者。

      我們經(jīng)常會聽到有經(jīng)理頭銜的人在高談闊論:“編程我不會,做個(gè)項(xiàng)目還不easy?派個(gè)人去搞系統(tǒng)分析,回頭再叫幾個(gè)程序員把需求譯成程序,不就OK了嗎?”

      不懂英語的人準(zhǔn)以為easy和OK是貶義詞。要讓軟件項(xiàng)目失敗很容易,只要符合下列條件之一即可:

      (1)項(xiàng)目經(jīng)理對軟件一無所知;

      (2)技術(shù)負(fù)責(zé)人對編程不感興趣;

      (3)真真編寫代碼的程序員是臨時(shí)雇用的。

      如果上述三個(gè)條件同時(shí)具備,就請放心失敗好了。

      讓我們少幻想自己是比爾·蓋茨,先當(dāng)好程序員和程序經(jīng)理再說。

      3.1了解程序員

      早期的程序員干活能從軟件直通硬件,個(gè)個(gè)生猛無比。又因他們的作息時(shí)間、言行舉止與常人不太一樣,久而久之就給人們留下了“神秘”、“孤僻”的印象。如今軟件行業(yè)被炒得熱火朝天,有能耐的程序員即便躲在大山岙的軍工廠里也能被挖出來。而更多原本不是程序員的人操起幾本“速成”、“二十一天通”等書籍也加入了這個(gè)行業(yè)?,F(xiàn)在國內(nèi)號稱有上百萬程序員,這支大軍魚龍混雜,已搞不清那些是正規(guī)軍,那些是民兵游擊隊(duì)了。

      第五篇:《軟件工程》

      《軟件工程》課程分析

      本課程是軟件技術(shù)專業(yè)學(xué)生必修的一門專業(yè)必修課。根據(jù)培養(yǎng)軟件開發(fā)人員的需要,本課程的任務(wù)是使學(xué)生通過本課程的學(xué)習(xí),了解軟件項(xiàng)目開發(fā)和維護(hù)的一般過程,掌握軟件開發(fā)的傳統(tǒng)方法和最新方法。能在軟件工程的理論指導(dǎo)下,開發(fā)一個(gè)小型管理系統(tǒng),為今后從事軟件工程實(shí)踐打下良好的基礎(chǔ)。

      一、課程分析

      (一)教學(xué)計(jì)劃的制定和教學(xué)內(nèi)容的選取

      根據(jù)培養(yǎng)應(yīng)用技能型人才的總目標(biāo),制訂本專業(yè)教學(xué)計(jì)劃,課程的教材配套,教學(xué)、實(shí)驗(yàn)、實(shí)訓(xùn)、課程設(shè)計(jì)大綱和指導(dǎo)書等教學(xué)文件齊全,近幾年來引入了現(xiàn)代教學(xué)技術(shù)手段,已初步建設(shè)、形成了具有特色的全套課堂教學(xué)和實(shí)驗(yàn)教學(xué)課件。

      根據(jù)該課程的基本教學(xué)要求和特點(diǎn),結(jié)合學(xué)時(shí)的安排,從教材的整體內(nèi)容出發(fā),有側(cè)重地進(jìn)行取舍,篩選出學(xué)生必須掌握的基本教學(xué)內(nèi)容,較好地解決了教學(xué)中質(zhì)量與數(shù)量的矛盾。

      (二)教學(xué)方法分析

      由于該課程是用于指導(dǎo)軟件開發(fā)的,和實(shí)踐聯(lián)系非常緊密。所以采用了理論聯(lián)系實(shí)際的方法進(jìn)行授課。一方面,讓學(xué)生模擬軟件公司的項(xiàng)目小組進(jìn)行軟件開發(fā);一方面,對學(xué)生進(jìn)行適時(shí)的理論指導(dǎo)。既調(diào)動了學(xué)生的積極性,又讓學(xué)生了解了該課程的理論內(nèi)容,收到了一舉兩得的效果。具體教學(xué)過程如下:

      第一步:模擬軟件公司的開發(fā)項(xiàng)目小組,分組,分設(shè)角色(項(xiàng)目經(jīng)理、用戶、需求人員、設(shè)計(jì)人員、程序員、測試人員、軟件安裝培訓(xùn)維護(hù)人員),確定開發(fā)題。讓每個(gè)小組的學(xué)生聚在一起,在項(xiàng)目經(jīng)理的組織下通過調(diào)研、討論來制定自己小組的開發(fā)題目,大家感覺就象在軟件公司實(shí)習(xí)一樣,非常新鮮,感興趣。每個(gè)學(xué)生都積極主動的去完成自己應(yīng)承擔(dān)的那部分工作。

      第二步:模擬軟件項(xiàng)目開發(fā)全過程的各個(gè)階段,進(jìn)行相關(guān)的理論授課和實(shí)際開發(fā)。即對軟件開發(fā)的每一階段,首先按照教材內(nèi)容進(jìn)行理論授課,然后讓學(xué)生參照授課內(nèi)容進(jìn)行實(shí)際的軟件開發(fā)實(shí)踐。

      在此階段結(jié)束后,每班召開一個(gè)模擬方案論證會,由各開發(fā)小組選出代表上臺講解本組的開發(fā)方案,其他同學(xué)模擬用戶對開發(fā)方案提出意見。由于大家對模擬方案論證會非常感興趣,發(fā)言積極踴躍,論證會結(jié)束后,每個(gè)小組的設(shè)計(jì)方案都得到了很好的補(bǔ)充和完善。

      第三步:學(xué)期末各小組提交各自完成的軟件系統(tǒng)及開發(fā)文檔,并進(jìn)行總結(jié)演示,由任課教師進(jìn)行講評。

      抽象理論課的教學(xué)應(yīng)理論聯(lián)系實(shí)際,讓學(xué)生在實(shí)際應(yīng)用中掌握抽象的理論,在興趣中學(xué)習(xí),達(dá)到我們高職的雙向型培養(yǎng)目標(biāo)。

      二、存在的問題與希望

      在上述的教學(xué)中,雖然實(shí)現(xiàn)了理論聯(lián)系實(shí)際,但也存在著一些問題,比如每個(gè)項(xiàng)目小組中總有個(gè)別同學(xué)存在依賴心理,不參與項(xiàng)目開發(fā),最后抄襲別的同學(xué)的項(xiàng)目成果,自己得不到實(shí)際的鍛煉,影響了大三的畢業(yè)設(shè)計(jì)和日后的軟件開發(fā)。另外,如果該課程只上課,沒有實(shí)訓(xùn)的話,實(shí)驗(yàn)課時(shí)太少,學(xué)生很難全面完成一個(gè)系統(tǒng)的開發(fā)。

      下載軟件工程教案word格式文檔
      下載軟件工程教案.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(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ù),工作人員會在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        軟件工程

        1. 軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科 2. 軟件危機(jī):是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題 3. 軟件過程:是為了開發(fā)出高質(zhì)量的軟件產(chǎn)品所需......

        軟件工程

        填好發(fā)給我?。。?!一、填空題: 1.面向?qū)ο蠓治龅哪康氖菍陀^世界的系統(tǒng)進(jìn)行 __________________,對象就是客觀世界的; 2.軟件工程方法學(xué)包括:工程環(huán)境建立、方法、工具和過程; 3.思想概括......

        軟件工程

        軟件工程—心得體會 摘要 本文結(jié)合基層實(shí)踐教學(xué)的實(shí)際情況和現(xiàn)實(shí)需要,系統(tǒng)地總結(jié)了《軟件工程》實(shí)踐教學(xué)的特征,詳細(xì)分析了實(shí)踐教學(xué)過程存在的問題,并提出了該課程實(shí)踐教學(xué)改革......

        軟件工程

        軟件工程 1. 談?wù)勀銓浖ぞ叩睦斫?,你用過什么軟件工具 軟件工具是指為支持計(jì)算機(jī)軟件的開發(fā)、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)。它是為專門目的而開發(fā)的,在軟件工......

        軟件工程

        一、名詞解釋 軟件: 指計(jì)算機(jī)系統(tǒng)中的程序及其文檔。 支持軟件:支持軟件的開發(fā)和維護(hù)的軟件。 系統(tǒng)軟件:屬于計(jì)算機(jī)系統(tǒng)中最靠近硬件的一層,其它軟件一般都通過系統(tǒng)軟件發(fā)揮作......

        軟件工程

        1.軟件危機(jī)的概念 系統(tǒng)的數(shù)據(jù)要求,功能需求,性能需求,顯示出程序的輪廓。 軟件危機(jī)是指在計(jì)算機(jī)軟件開發(fā)、使用與可靠性需求,可用性需求,出錯(cuò)處理需求,混合方式 維護(hù)過程中遇到的......

        【授課教案】梧州學(xué)院-《軟件工程》教學(xué)大綱

        《軟件工程》課程教學(xué)大綱 一、課程基本信息 課程代碼: 課程名稱:軟件工程 課程英文名稱:Software Engineering 學(xué)時(shí)/學(xué)分:34學(xué)時(shí)/2學(xué)分 開課系(部):計(jì)算機(jī)科學(xué)系 先修課程:面向?qū)ο?.....

        軟件工程小結(jié)

        今天視頻看完了,可是沒有總結(jié)。還是感覺不會總結(jié)。一想到50講的課,怎么總結(jié)呢?開始聽的時(shí)候,是真不知道從哪里下手,因?yàn)殚_始看的時(shí)候有種迷迷糊糊的感覺。軟件工程,我期待的一門課......