什么是軟件危機怎樣消除軟件危機 軟件工程導論考研大綱?
軟件工程導論考研大綱?上海理工大學2021年869數(shù)據(jù)結構及軟件工程考研大綱第一部分:數(shù)據(jù)結構一、參考書目《數(shù)據(jù)結構》(C語言版),嚴蔚敏等主編,清華大學出版社,2012年二、考試內(nèi)容要求1、清楚數(shù)據(jù)
軟件工程導論考研大綱?
上海理工大學2021年869數(shù)據(jù)結構及軟件工程考研大綱
第一部分:數(shù)據(jù)結構
一、參考書目
《數(shù)據(jù)結構》(C語言版),嚴蔚敏等主編,清華大學出版社,2012年
二、考試內(nèi)容要求
1、清楚數(shù)據(jù)結構非盈利組織會計分類、數(shù)據(jù)結構與算法的密切關系。
2、熟悉各種基本是數(shù)據(jù)結構及操作,學會依據(jù)不好算問題具體的要求來你選擇數(shù)據(jù)結構。
3、掌握到設計算法的步驟和算法分析方法。
4、掌握數(shù)據(jù)結構在排序和查找等具體用法算法中的應用。
5、明確的掌握到文件組織方法和索引技術。
三、考試內(nèi)容
1、數(shù)據(jù)結構基本概念及簡單的算法分析什么
1)什么是數(shù)據(jù)結構
2)抽象的概念數(shù)據(jù)類型及面向?qū)ο蟾拍睿簲?shù)據(jù)類型;數(shù)據(jù)抽象與抽像數(shù)據(jù)類型;面向?qū)ο蟮母拍睿蛔饔糜谠敿毥忉寯?shù)據(jù)結構的語言
3)數(shù)據(jù)結構的抽象層次
4)算法定義
5)性能分析與度量:算法的性能標準;算法的后期測試;算法的事前估計也;空間奇怪度器量;時間復雜度度量;時間復雜度的漸進式表示法;漸進的空間緊張.
2、數(shù)組
1)才是抽象數(shù)據(jù)類型的數(shù)組:數(shù)組的定義和初始化;才是抽象數(shù)據(jù)類型的數(shù)組;數(shù)組的順序存儲
2)順序表:順序表的定義和特點;順序表的類定義;順序表的中搜索、插到和刪除;不使用順序表的事例
3)字符串:字符串的抽象數(shù)據(jù)類型;字符串操作的實現(xiàn);字符串的模式不兼容
3、鏈表
1)單鏈表:單鏈表的結構;單鏈表的類定義;單鏈表中的插入到與刪除掉;帶表頭結點的單鏈表;用模板定義的單鏈表類;單鏈表的游標類;靜態(tài)鏈表
2)循環(huán)鏈表:循環(huán)鏈表的類定義;用循環(huán)鏈表解約瑟夫問題;多項式及乘積:多項式的類定義;多項式的加法
3)頓井站鏈表
4、棧和隊列
1)棧:棧的抽象數(shù)據(jù)類型;棧的順序存儲位置它表示;棧的鏈接讀取它表示
2)隊列:隊列的抽象數(shù)據(jù)類型;隊列的順序讀取它表示;隊列的鏈接存儲來表示;3)隊列的應用例子
4)優(yōu)先級隊列:優(yōu)先級隊列的定義;優(yōu)先級隊列的存儲可以表示
5、二分查找
1)遞歸的概念
2)迷宮問題
3)遞歸過程與遞歸工作棧
4)用來棧實現(xiàn)方法的迷宮問題非二分查找解法
5)廣義表:廣義表的概念;廣義表的意思是及操作;包容關系表存儲結構的實現(xiàn);廣6)義表的訪問算法;廣義表的遞歸算法
6、樹與森林
1)樹和森林的概念:樹的定義;樹的術語;樹的抽象數(shù)據(jù)類型
2)二叉樹:二叉樹的定義;二叉樹的性質(zhì);二叉樹的抽象數(shù)據(jù)類型
3)二叉樹的意思是:數(shù)組來表示;鏈表讀取來表示
4)二叉樹遍歷樹:中序遍歷數(shù)組;前序遍歷過程;后序遍歷;應用二叉樹遍歷過程的事例;二叉樹遍歷的游標類;不需要棧的二叉樹中序遍歷樹算法
5)線索化二叉樹:線索;中序線索化二叉樹;前序與后序的線索化
6)堆:堆的定義;堆的建立;堆的再插入與刪掉
7)樹與森林:樹的存儲意思是;森林與二叉樹的轉(zhuǎn)換;樹的遍歷樹;森林的遍歷樹
二叉樹的計數(shù)
8)霍夫曼樹:路徑長度;霍夫曼樹;霍夫曼編碼
7、數(shù)學集合與搜索
1)集合教材習題解答可以表示:整數(shù)集基本概念;以整數(shù)集為基礎知識的抽象數(shù)據(jù)類型;用位向量實現(xiàn)方法整數(shù)集抽像據(jù)類型;用穩(wěn)定有序鏈表基于集合的抽象數(shù)據(jù)類型
2)等價類:等價關系與等價類;確認真包含類的鏈表方法;并查集
3)簡單點搜索結構:搜索的概念;支持靜態(tài)搜索結構;順序搜索;基于組件活動有序順序表的對分搜索
4)二叉搜索樹:定義;二叉搜索樹上的搜索;二叉搜索樹的插入到;二叉搜索樹的徹底刪除;與二叉搜索樹相關的中序游標類
5)AVI樹:AVI樹的定義;平衡化旋轉(zhuǎn);AVI樹的再插入和徹底刪除;AVI樹的高度
8、圖
1)圖的基本概念:圖的基本概念;圖的抽象數(shù)據(jù)類型
2)圖的儲存表示:鄰接矩陣;延伸部分表;過渡區(qū)多貴表
3)圖的遍歷數(shù)組與連通性:深度優(yōu)先搜索;廣度優(yōu)先于搜索;相連分量;重連通分量
4)最小生成樹:克魯斯卡爾算法;普里姆算法
5)活動網(wǎng)絡:用頂點它表示活動的網(wǎng)絡;用邊表示活動的網(wǎng)絡
9、排序
1)插入排序:真接插入升序;對分插入排序;鏈表插入排序;希爾排序
2)同樣排序:起泡排序;快速排序
3)選擇排序:就你選排序;錦標賽排序;堆排序
4)歸并排序:歸并;迭代的歸并排序算法;遞歸過程的表區(qū)域合并排序
5)基數(shù)排序:多關鍵碼排序;鏈式基數(shù)排序
6)外排序:外排序的都差不多過程;k路平衡歸并;初始歸并段的生成;最適合歸并樹
10、索引與散列結構
1)動態(tài)和靜態(tài)索引結構:線性索引;倒排表;m路動態(tài)和靜態(tài)中搜索樹
2)相冊索引結構:動態(tài)的m路查看樹;b_樹;b_樹的插入;b_樹的刪除;b樹
3)散列:詞典的抽象數(shù)據(jù)類型;散列表與散列方法;散列函數(shù);處理溢出的閉散列方法;一次性處理流出的開散列方法;散列表總結
第二部分:軟件工程
一、參考書目
張海藩張海藩_,牟永敏牟永敏_著,《軟件工程導論》(第6版),清華大學出版社,2013年
二、考試內(nèi)容范圍
掌握到軟件工程的基本概念、基本原理和基本方法;掌握到可行性研究、需求分析、軟件設計、軟件測試、魔獸維護和衍化、軟件過程和管理等方面的基礎知識,組建軟件開發(fā)的系統(tǒng)化和工程化的概念和質(zhì)量意識,還能夠綜合利用軟件工程的方法與技術。
1、軟件工程主要內(nèi)容
1)軟件的本質(zhì)特征和軟件開發(fā)的本質(zhì)困難
2)軟件危機的產(chǎn)生及軟件工程的起源
3)軟件工程的定義
4)軟件工程學科的重要地位
2、軟件生命周期
1)需求:需求的定義和類型、需求工程過程、需求規(guī)格只能證明、需求評審
設計:高層設計和具體一點設計
2)測試:不驗證與確認、單元測試、集成測試、驗證測試和測試工作、回歸測試和部署
3)程序維護和演化出:演化的基本概念、演化和魔獸維護活動、程序理解和逆向工程、系統(tǒng)和過程的再工程過程
4)項目管理:人員組織和管理、項目計劃和監(jiān)視、軟件暗自盤算、風險控制、配置管理
3、軟件過程模型(一)
1)瀑布模型
2)衍化模型及增量和迭代方法的本質(zhì)特征
3)螺旋模型
4、軟件過程模型(二)
1)材軟件開發(fā)過程模型
2)攻擊速度過程模型
5、可行性分析
1)可行性研究的目標
2)可行性研究的過程和預期好結果
3)經(jīng)濟可行性的基本概念和評估方法
4)技術可行性的基本概念
5)合規(guī)可行性的基本概念
6、需求工程概要
1)軟件需求的根本不挑戰(zhàn)
2)軟件需求的制品
3)需求工程過程--需求獲取、分析、規(guī)約和驗證
4)需求管理--需求跟蹤監(jiān)視、優(yōu)先級和需求變更
5)領域模型和數(shù)據(jù)字典
7、結構化需求分析
1)建?;A:模型和視圖
2)系統(tǒng)流程圖
3)數(shù)據(jù)流圖
4)實體-聯(lián)系聯(lián)系圖
5)狀態(tài)轉(zhuǎn)換成圖、IPO圖
8、面向?qū)ο笮枨蠓治觯ㄒ唬?/p>
1)UML建模基礎
2)用例和用例圖
3)用例圖的基本是符號與企業(yè)應用程序關系
4)商業(yè)用例詳細解釋
9、面向?qū)ο笮枨蠓治觯ǘ?/p>
1)用活動圖、順序圖和通信圖描述用戶痛點
2)領域的概念類與類圖
3)類之間的關系
4)過程模型的創(chuàng)建步驟與建模舉例子
10、軟件設計基礎
1)總體設計和具體一點電腦設計的概念
2)軟件設計過程
3)軟件設計的基本原理
4)軟件設計的啟發(fā)式規(guī)則
5)非功能性需求和軟件設計
11、人機界面設計
1)像是的人機界面設計原則
2)人機交互和界面風格
3)人機界面講與建模
4)界面設計活動和設計原則
5)界面設計的實現(xiàn)工具
6)可用性和人機交互評價
12、軟件體系結構基礎
1)軟件體系結構視圖
2)軟件體系結構模式明確的
3)基于組件構件的軟件開發(fā)和UML構件圖
4)在用UML作戰(zhàn)部署圖描述部署模型
13、結構化軟件設計
1)層次圖、HIPO圖和結構圖
2)程序流程圖、盒圖
3)不能判斷表和進一步判斷樹
4)面向數(shù)據(jù)流的設計方法
14、面向?qū)ο筌浖O計
1)需求分析的精化-實體類、邊界類和控制類
2)類圖和對象圖
3)CRC技術
4)類之間的關系
5)從分析類到射擊類
6)使用狀態(tài)機圖通過設計建模
7)不使用活動圖、順序圖和通信圖參與設計建模
15、程序設計語言和編碼
1)程序設計語言
2)編程規(guī)范和程序設計風格
3)軟件設計質(zhì)量度量
4)McCabe急切度分析
16、軟件測試、軟件以維護和演化出
1)軟件測試的目的
2)軟件測試策略和模型
3)灰盒測試
4)測試用例的編寫
5)軟件測試成功標準
6)軟件程序維護的概念
7)軟件維護過程
8)軟件演變和再工程技術
軟件危機的準確定義是什么?
軟件危機(Software Crisis)是計算機軟件在它的開發(fā)和維護過程中所遇到的一系列相當嚴重問題。概括地說,通常真包含兩方面的問題:如何能旗下軟件,怎么樣才能柯西-黎曼方程對軟件日益強大增長的速度的需求;如何能維護數(shù)量不斷地迅速膨脹的已有軟件?!败浖C”令人們就開始對軟件及特性并且加深三步的研究,人們轉(zhuǎn)變了早期對軟件的不對的看法。早期那些被如果說是優(yōu)秀的程序動不動愛不是那么容易被別人看懂,通篇充滿了程序技巧?,F(xiàn)在人們普片其實杰出的的程序以外功能正確的,性能優(yōu)良之外,還應該要不容易看懂、不容易不使用、不容易修改和擴充。程序設計語言雖說為計算機的應用新開拓了到極點廣闊的前景,但游蕩在軟件世界的幽靈——“軟件危機”卻存在。是因為軟件的開發(fā)不單造成程序設計的方法、結構的制約,并且給予開發(fā)周期和軟件開發(fā)成本的限制,更重要的是軟件質(zhì)量的保障與其程序設計的正確性關系頗大。假如所變更土地性質(zhì)的軟件其可靠性無法得到保障,在運行中很快就會再產(chǎn)生后果不堪設想啊的嚴重后果。其次就是,有軟件危機的存在,也隨機著程序員斷的去更新完和完善系統(tǒng)軟件