47 软件工程34h-北京大学孙艳春老师
P11. 1.2軟件工程課程介紹第一講48:03
P22. 1.2軟件工程課程介紹第二講50:53
P33. 2.1軟件生存周期過程第一講49:51
P44. 2.1軟件生存周期過程第二講46:35
P55. 2.2軟件生存周期模型第一講46:43
P66. 2.2軟件生存周期模型第二講45:38
P77. 3軟件需求與軟件需求規(guī)約第一講52:22
P88. 3軟件需求與軟件需求規(guī)約第二講42:20
P99. 4結構化分析方法第一講48:02
P1010. 4結構化分析方法第二講47:48
P1112. 5.1結構化設計方法-總體設計第二講38:09
P1213. 5.2結構化設計方法-詳細設計第一講47:52
P1314. 5.2結構化設計方法-詳細設計第二講16:39
P1415. 6敏捷軟件開發(fā)第一講48:48
P1516. 6敏捷軟件開發(fā)第二講52:34
P1617. 7.1面向?qū)ο蠓椒ê喗?8:19
P1718. 7.2UML描述客體及客體關系的術語-第一部分59:42
P1819. 7.3UML描述客體及客體關系的術語-第二部分(第1講)49:33
P1920. 7.3UML描述客體及客體關系的術語-第二部分(第2講)48:09
P2021. 7.4UML模型表達工具第一講48:07
P2122. 7.4UML模型表達工具第二講46:08
P2223. 8.1面向?qū)ο蠓治龅谝徊糠?6:16
P2325. 8.2面向?qū)ο笤O計第一部分18:11
P2426. 8.2面向?qū)ο笤O計第二部分45:11
P2527. 8.2面向?qū)ο笤O計第三部分30:15
P2628. 8.3面向?qū)ο缶幊?0:09
P2730. 9.1軟件測試技術第二講47:58
P2831. 9.2軟件測試步驟和測試技術應用第一講49:59
P2932. 9.2軟件測試步驟和測試技術應用第二講46:24
P3033. 10.1軟件項目管理簡介46:30
P3134. 10.2CMM和ISO9000第一講48:23
P3235. 10.2CMM和ISO9000第二講21:23
P3336. 11互聯(lián)網(wǎng)軟件技術第一講41:41
P3437. 11互聯(lián)網(wǎng)軟件技術第二講47:08
P3538. 12軟件開發(fā)工具與環(huán)境40:23
P3639. 13課程總復習56:18
P3740. 14.1習題課第一講32:29
P3842. 15.1課程實踐介紹14:28
P3943. 15.2課程實踐工具和技術介紹58:04
P4045. 16.1課程實踐1:軟件開發(fā)計劃和結構化需求分析(第2講)47:38
P4146. 16.2課程實踐2:結構化總體設計和詳細設計(第1講)46:56
P4247. 16.2課程實踐2:結構化總體設計和詳細設計(第2講)58:16
P4348. 16.3課程實踐3:面向?qū)ο蠓治龊驮O計(第1講)47:01
P4449. 16.3課程實踐3:面向?qū)ο蠓治龊驮O計(第2講)1:00:41
P4550. 16.4課程實踐4:軟件實現(xiàn)、軟件測試和項目開發(fā)總結(第1講)44:31
P4651. 16.4課程實踐4:軟件實現(xiàn)、軟件測試和項目開發(fā)總結(第2講)59:11
P4753. 1.1軟件工程概述第二講49:16
附錄
軟件工程是一門研究用工程化方法構建和維護有效、實用和高質(zhì)量的軟件的學科。它涉及程序設計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設計件有電子郵件、嵌入式系統(tǒng)、人機界面、辦公套件、操作系統(tǒng)、編譯器、數(shù)據(jù)庫、游戲等。同時,各個行業(yè)幾乎都有計算機軟件的應用,如工業(yè)、農(nóng)業(yè)、銀行、航空、政府部門等。這些應用促進了經(jīng)濟和社會的發(fā)展,也提高了工作效率和生活效率 。
定義
軟件工程
軟件工程一直以來都缺乏一個統(tǒng)一的定義,很多學者、組織機構都分別給出了自己認可的定義: [1]
BarryBoehm:運用現(xiàn)代科學技術知識來設計并構造計算機程序及為開發(fā)、運行和維護這些程序所必需的相關文件資料。
IEEE:在軟件工程術語匯編中的定義:軟件工程是:1.將系統(tǒng)化的、嚴格約束的、可量化的方法應用于軟件的開發(fā)、運行和維護,即將工程化應用于軟件;2.在1中所述方法的研究
FritzBauer:在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經(jīng)濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。
《計算機科學技術百科全書》:軟件工程是應用計算機科學、數(shù)學、邏輯學及管理科學等原理,開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本和改進算法。其中,計算機科學、數(shù)學用于構建模型與算法,工程科學用于制定規(guī)范、設計范型(paradigm)、評估成本及確定權衡,管理科學用于計劃、資源、質(zhì)量、成本等管理。
比較認可的一種定義認為:軟件工程是研究和應用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護軟件,以及如何把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
ISO 9000對軟件工程過程的定義是:軟件工程過程是輸入轉(zhuǎn)化為輸出的一組彼此相關的資源和活動。 [2]
其它定義:1.運行時,能夠提供所要求功能和性能的指令或計算機程序集合。2.程序能夠滿意地處理信息的數(shù)據(jù)結構。3.描述程序功能需求以及程序如何操作和使用所要求的文檔。以開發(fā)語言作為描述語言,可以認為:軟件=程序+數(shù)據(jù)+文檔。
內(nèi)涵
一、軟件工程過程是指為獲得軟件產(chǎn)品,在軟件工具的支持下由軟件工程師完成的一系列軟件工程活動,包括以下四個方面:
1、P(Plan)——軟件規(guī)格說明。規(guī)定軟件的功能及其運行時的限制。
2、D(DO)——軟件開發(fā)。開發(fā)出滿足規(guī)格說明的軟件。
3、C(Check)——軟件確認。確認開發(fā)的軟件能夠滿足用戶的需求。
4、A(Action)——軟件演進。軟件在運行過程中不斷改進以滿足客戶新的需求。
二、從軟件開發(fā)的觀點看,它就是使用適當?shù)馁Y源(包括人員,軟硬件資源,時間等),為開發(fā)軟件進行的一組開發(fā)活動,在活動結束時輸入(即用戶的需求)轉(zhuǎn)化為輸出(最終符合用戶需求的軟件產(chǎn)品)。
三個階段:定義階段:可行性研究初步項目計劃、需求分析;開發(fā)階段:概要設計、詳細設計、實現(xiàn)、測試;運行和維護階段:運行、維護、廢棄
原則:1、抽象;2、信息隱蔽;3、模塊化;4、局部化;5、確定性;6,一致性;7、完備性;8、可驗證性
基本內(nèi)容
軟件工程原理、軟件工程過程、軟件工程方法、軟件工程模型、軟件工程管理、軟件工程度量、軟件工程環(huán)境、軟件工程應用、軟件工程開發(fā)使用。著名軟件工程專家B.Boehm綜合有關專家和學者的意見并總結了多年來開發(fā)軟件的經(jīng)驗,于1983年在一篇論文中提出了軟件工程的七條基本原理:
(1)用分階段的生存周期計劃進行嚴格的管理。
(2)堅持進行階段評審。
(3)實行嚴格的產(chǎn)品控制。
(4)采用現(xiàn)代程序設計技術。
(5)軟件工程結果應能清楚地審查。
(6)開發(fā)小組的人員應該少而精。
(7)承認不斷改進軟件工程實踐的必要性。 [2]
發(fā)展過程
軟件是由計算機程序和程序設計的概念發(fā)展演化而來的,是在程序和程序設計發(fā)展到一定規(guī)模并且逐步商品化的過程中形成的。軟件的發(fā)展大致分為四個階段。
無軟件概念階段(1946年~1955年)
此階段的特點是:尚無軟件的概念,程序設計主要圍繞硬件進行開發(fā),規(guī)模很小,工具簡單,無明確分工(開發(fā)者和用戶),程序設計追求節(jié)省空間和編程技巧,無文檔資料(除程序清單外),主要用于科學計算。 [2]
意大利面階段(1956年~1970年)
軟件工程
此階段的特點是:硬件環(huán)境相對穩(wěn)定,出現(xiàn)了“軟件作坊”的開發(fā)組織形式。開始廣泛使用產(chǎn)品軟件(可購買),從而建立了軟件的概念。但程序員編碼隨意,整個軟件看起來像是一碗意大利面一樣雜亂無章,隨著軟件系統(tǒng)規(guī)模的壯大,軟件產(chǎn)品的質(zhì)量不高,生產(chǎn)效率低下,從而導致了“軟件危機”的產(chǎn)生。
軟件工程階段(1970年至今)
由于“軟件危機”的產(chǎn)生,迫使人們不得不研究、改變軟件開發(fā)的技術手段和管理方法。從此軟件產(chǎn)生進入了軟件工程時代。此階段的特點是:硬件已向巨型化、微型化、網(wǎng)絡化和智能化四個方向發(fā)展,數(shù)據(jù)庫技術已成熟并廣泛應用,第三代、第四代語言出現(xiàn);第一代軟件技術:結構化程序設計在數(shù)值計算領域取得優(yōu)異成績;第二代軟件技術:軟件測試技術、方法、原理用于軟件生產(chǎn)過程;第三代軟件技術:處理需求定義技術用于軟件需求分析和描述。
面向?qū)ο箅A段(1990年至今)
這一階段提出了面向?qū)ο蟮母拍詈头椒āC嫦驅(qū)ο蟮乃枷氚嫦驅(qū)ο蟮姆治?#xff08;OOA,Object Oriented Analysis),面向?qū)ο蟮脑O計(OOD,Object Oriented Design)、以及面向?qū)ο蟮木幊虒崿F(xiàn)(OOP,Object Oriented Programming)等等。
如同模塊化的編碼方式一樣,面向?qū)ο缶幊桃残枰ㄟ^反復的練習加深對面向?qū)ο蟮睦斫夂驼莆铡?/span>
未來
在Internet平臺上進一步整合資源,形成巨型的、高效的、可信的虛擬環(huán)境,使所有資源能夠高效、可信地為所有用戶服務,成為軟件技術的研究熱點之一。
軟件工程領域的主要研究熱點是軟件復用和軟件構件技術,它們被視為是解決“軟件危機”的一條現(xiàn)實可行的途徑,是軟件工業(yè)化生產(chǎn)的必由之路。而且軟件工程會朝著開放性計算的方向發(fā)展,朝著可以確定行業(yè)基礎框架、指導行業(yè)發(fā)展和技術融合的“開放計算”。
目標
軟件工程的目標是:在給定成本、進度的前提下,開發(fā)出具有適用性、有效性、可修改性、可靠性、可理解性、可維護性、可重用性、可移植性、可追蹤性、可互操作性和滿足用戶需求的軟件產(chǎn)品。追求這些目標有助于提高軟件產(chǎn)品的質(zhì)量和開發(fā)效率,減少維護的困難。
(1)適用性:軟件在不同的系統(tǒng)約束條件下,使用戶需求得到滿足的難易程度。
(2)有效性:軟件系統(tǒng)能最有效的利用計算機的時間和空間資源。各種軟件無不把系統(tǒng)的時/空開銷作為衡量軟件質(zhì)量的一項重要技術指標。很多場合,在追求時間有效性和空間有效性時會發(fā)生矛盾,這時不得不犧牲時間有效性換取空間有效性或犧牲空間有效性換取時間有效性。時/空折衷是經(jīng)常采用的技巧。
(3)可修改性:允許對系統(tǒng)進行修改而不增加原系統(tǒng)的復雜性。它支持軟件的調(diào)試和維護,是一個難以達到的目標。
(4)可靠性:能防止因概念、設計和結構等方面的不完善造成的軟件系統(tǒng)失效,具有挽回因操作不當造成軟件系統(tǒng)失效的能力。
(5)可理解性:系統(tǒng)具有清晰的結構,能直接反映問題的需求。可理解性有助于控制系統(tǒng)軟件復雜性,并支持軟件的維護、移植或重用。
(6)可維護性:軟件交付使用后,能夠?qū)λM行修改,以改正潛伏的錯誤,改進性能和其它屬性,使軟件產(chǎn)品適應環(huán)境的變化等。軟件維護費用在軟件開發(fā)費用中占有很大的比重。可維護性是軟件工程中一項十分重要的目標。
(7)可重用性:把概念或功能相對獨立的一個或一組相關模塊定義為一個軟部件。可組裝在系統(tǒng)的任何位置,降低工作量。
(8)可移植性:軟件從一個計算機系統(tǒng)或環(huán)境搬到另一個計算機系統(tǒng)或環(huán)境的難易程度。
(9)可追蹤性:根據(jù)軟件需求對軟件設計、程序進行正向追蹤,或根據(jù)軟件設計、程序?qū)浖枨蟮哪嫦蜃粉櫟哪芰Α?/span>
(10)可互操作性:多個軟件元素相互通信并協(xié)同完成任務的能力。
皮格馬利翁效應心理學指出,贊美、贊同能夠產(chǎn)生奇跡,越具體,效果越好~ “收藏夾吃灰”是學“器”練“術”非常聰明的方法,幫助我們避免日常低效的勤奮~總結
以上是生活随笔為你收集整理的47 软件工程34h-北京大学孙艳春老师的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求当前高度=n时,值x=多少?求解题思路
- 下一篇: 秘鲁蓝莓国际农民丰收节贸易会-·万祥军: