軟件工程的七條基本原理是什么腮出?
軟件工程的七條基本原理是:
(1)用分階段的是的生存周期計(jì)劃嚴(yán)格管理城侧;
(2)堅(jiān)持進(jìn)行階段評審;
(3)嚴(yán)格實(shí)施的產(chǎn)品控制咱筛;
(4)采用現(xiàn)代程序技術(shù)搓幌;
(5)結(jié)果應(yīng)能清楚地審查;
(6)開發(fā)小組的成員應(yīng)該少而精迅箩;
(7)承認(rèn)不斷改進(jìn)軟件工程的必要性溉愁。
分析軟件危機(jī)產(chǎn)生的主要有哪些原因?
(1)軟件日益復(fù)雜和龐大
(2)軟件開發(fā)管理困難和復(fù)雜
(3)軟件開發(fā)技術(shù)落后
(4)生產(chǎn)方式落后
(5)開發(fā)工具落后
(6)軟件開發(fā)費(fèi)用不斷增加
什么是軟件過程饲趋?它與軟件工程方法學(xué)有何關(guān)系拐揭?
(1)軟件過程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟篙贸。
(2) 軟件過程是軟件工程方法學(xué)的3個重要組成部分之一投队。
(3) 軟件工程方法學(xué)包含三個要素:方法、工具和過程爵川。
簡述文檔在軟件工程中的作用「2022成信大809真題」
(1) 提高軟件開發(fā)過程的能見度
(2) 提高開發(fā)效率
(3) 作為開發(fā)人員階段工作成果和結(jié)束標(biāo)志
(4) 記錄開發(fā)過程的有關(guān)信息便于使用與維護(hù)敷鸦;
(5) 提供軟件運(yùn)行、維護(hù)和培訓(xùn)有關(guān)資料寝贡;
(6) 便于用戶了解軟件功能扒披、性能。
說明結(jié)構(gòu)化程序設(shè)計(jì)的主要思想是什么圃泡?
(1)自頂向下碟案、逐步求精的程序設(shè)計(jì)方法
(2)使用3種基本控制結(jié)構(gòu)、單入口颇蜡、單出口來構(gòu)造程序价说。
什么是軟件危機(jī)?
軟件危機(jī):
軟件危機(jī)是指在計(jì)算機(jī)軟件開發(fā)风秤、使用與維護(hù)過程中遇到的一系列嚴(yán)重問題和難題鳖目。它包括兩方面:如何開發(fā)軟件,已滿足對軟件日益增長的需求缤弦;如何維護(hù)數(shù)量不斷增長的已有軟件领迈。
軟件危機(jī)的典型表現(xiàn)?
軟件危機(jī)的典型表現(xiàn):
(1) 對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。
(2) 用戶對已完成的軟件不滿意的現(xiàn)象時有發(fā)生狸捅。
(3) 軟件產(chǎn)品的質(zhì)量往往是靠不住的衷蜓。
(4) 軟件常常是不可維護(hù)的。
(5) 軟件通常沒有適當(dāng)?shù)奈臋n資料尘喝。
(6) 軟件成本磁浇、軟件維護(hù)費(fèi)在計(jì)算機(jī)系統(tǒng)總成本中所占比例逐年上升。
(7) 開發(fā)生產(chǎn)率提高的速度遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用普及的需求瞧省。
為什么會出現(xiàn)軟件危機(jī)宜咒?
軟件危機(jī)出現(xiàn)的原因:
(1) 來自軟件自身的特點(diǎn):是邏輯部件程帕,缺乏可見性;規(guī)模龐大愧哟、復(fù)雜骑科,修改橡淑、維護(hù)困難。
(2) 軟件開發(fā)與維護(hù)的方法不當(dāng):忽視需求分析咆爽;認(rèn)為軟件開發(fā)等于程序編寫梁棠;輕視軟件維護(hù)。
(3) 供求矛盾將是一個永恒的主題:面對日益增長的軟件需求斗埂,人們顯得力不從心符糊。
什么是軟件工程?
1993年IEEE的定義:軟件工程是:
① 把系統(tǒng)的呛凶、規(guī)范的男娄、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程漾稀,也就是把工程應(yīng)用于軟件模闲;
② 研究①中提到的途徑。
【補(bǔ)充:軟件工程的定義】
軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科崭捍。采用工程的概念尸折、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件殷蛇,把經(jīng)過時間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來实夹,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。
軟件工程的本質(zhì)特征粒梦?
軟件工程的本質(zhì)特征:
(1) 軟件工程關(guān)注于大型程序的構(gòu)造 亮航;
(2) 軟件工程的中心課題是控制復(fù)雜性;
(3) 軟件是經(jīng)常變化的谍倦,開發(fā)過程中必須考慮軟件將來可能的變化塞赂;
(4) 開發(fā)軟件的效率非常重要,因此昼蛀,軟件工程的一個重要課題就是宴猾,尋求開發(fā)與維護(hù)軟件的更好更有效的方法和工具圆存;
(5) 和諧地合作是開發(fā)軟件的關(guān)鍵;
(6) 軟件必須有效地支持它的用戶仇哆;
(7) 在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品沦辙。
怎樣用軟件工程消除軟件危機(jī)?
消除軟件危機(jī)的途徑:
(1) 對計(jì)算機(jī)軟件有一個正確的認(rèn)識(軟件≠程序)
(2) 必須充分認(rèn)識到軟件開發(fā)不是某種個體勞動的神秘技巧讹剔,而應(yīng)該是一種組織良好油讯、管理嚴(yán)密、各類人員協(xié)同配合延欠、共同完成的工程項(xiàng)目
(3) 推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法
(4) 開發(fā)和使用更好的軟件工具
什么是軟件生命周期模型陌兑?
軟件生命周期模型是跨越整個生存期的系統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過程由捎、活動和任務(wù)的結(jié)構(gòu)框架兔综。
為什么要進(jìn)行可行性研究?
對于軟件開發(fā)問題,并非都有簡單狞玛、明顯的解決辦法软驰,許多問題不可能在預(yù)定的系統(tǒng)規(guī)模或時間期限之內(nèi)解決心肪。如果該問題沒有可行的解锭亏,那么花費(fèi)在這項(xiàng)工程上的任何時間、人力硬鞍、軟硬件資源和經(jīng)費(fèi)都是無謂的浪費(fèi)慧瘤。可行性研究的目的膳凝,就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決碑隆。
數(shù)據(jù)字典包括哪些內(nèi)容?「2022成信大809真題」
數(shù)據(jù)字典是描述數(shù)據(jù)流圖中數(shù)據(jù)的信息的集合。它對數(shù)據(jù)流圖上每一個成分:數(shù)據(jù)項(xiàng)蹬音、文件(數(shù)據(jù)結(jié)構(gòu))上煤、數(shù)據(jù)流、數(shù)據(jù)存儲著淆、加工和外部項(xiàng)等給以定義和說明劫狠;它主要由數(shù)據(jù)流描述、加工描述和文件描述三部分組成永部。
結(jié)構(gòu)化的需求分析描述工具有哪些?「2022成信大809真題」
有數(shù)據(jù)流圖(DFD)独泞、數(shù)據(jù)字典(DD)、判定表苔埋、判定樹懦砂、結(jié)構(gòu)化語言(PDL)、層次方框圖、Warnier 圖荞膘、IPO圖罚随、控制流圖(CFD)、控制說明(CSPEC)羽资、狀態(tài)轉(zhuǎn)換圖(STD)和實(shí)體—關(guān)系圖(E—R)等淘菩。
為什么要進(jìn)行需求分析、通常對軟件系統(tǒng)有哪些要求
(1)需求分析的原因
為了開發(fā)真正滿足用戶需求的軟件產(chǎn)品屠升,需求分析是軟件開發(fā)工作獲得成功的前提條件潮改,不能滿足用戶需求的程序只會令用戶失望,給開發(fā)者帶來煩惱腹暖。
(2)對軟件系統(tǒng)的需求
功能需求汇在、性能需求、可靠性和可用性需求脏答、出錯處理趾疚、借口需求、約束以蕴、逆向需求、將來可能提出的要求辛孵。
什么是模塊獨(dú)立性丛肮?用什么度量?
模塊獨(dú)立性概括了把軟件劃分為模塊時要遵守的準(zhǔn)則魄缚,也是判斷模塊構(gòu)造是不是合理的標(biāo)準(zhǔn)宝与。獨(dú)立性可以從兩個方面來度量:即模塊本身的內(nèi)聚和模塊之間的耦合。
為什么軟件開發(fā)過程需要軟件設(shè)計(jì)階段冶匹?
因?yàn)槿绻贿M(jìn)行設(shè)計(jì)直接編碼习劫,對無法對各種實(shí)現(xiàn)方案進(jìn)行權(quán)衡,極有可能會導(dǎo)致軟件項(xiàng)目的失敗嚼隘。
良好的編碼風(fēng)格應(yīng)具備哪些條件诽里?「2022成信大809真題」
應(yīng)具備以下條件:
(1)使用標(biāo)準(zhǔn)的控制結(jié)構(gòu);
(2)有限制地使用GOTO語句飞蛹;
(3)源程序的文檔化 (應(yīng)具備以下內(nèi)容)
①有意義的變量名稱 —— “匈牙利命名規(guī)則 ”谤狡。
②適當(dāng)?shù)淖⑨?——“注釋規(guī)范”。
③標(biāo)準(zhǔn)的書寫格式:
——用分層縮進(jìn)的寫法顯示嵌套結(jié)構(gòu)的層次(鋸齒形風(fēng)格)卧檐;
——在注釋段的周圍加上邊框墓懂;
——在注釋段與程序段、以及不同程序段之間插入空行霉囚;
——每行只寫一條語句捕仔;
——書寫表達(dá)式時,適當(dāng)使用空格或圓括號等作隔離符。
軟件測試的基本任務(wù)是什么榜跌?測試與糾錯有什么區(qū)別闪唆?
軟件測試的基本任務(wù)是通過在計(jì)算機(jī)上執(zhí)行程序,暴露程序中潛在的錯誤斜做。
測試和糾錯目的和任務(wù)都不相同苞氮,測試是為了發(fā)現(xiàn)程序的錯誤,糾錯是為了定位和糾正錯誤瓤逼,從而消除軟件故障笼吟,保證程序的可靠運(yùn)行。
軟件測試包括哪些步驟霸旗?同時說明這些步驟的測試目的是什么贷帮?
(1)單元測試,目的是代碼達(dá)到模塊說明書的要求
(2)集成測試诱告,目的是將經(jīng)過單元測試的模塊逐步組裝成具有良好一致性的完整的程序
(3)確認(rèn)測試撵枢,目的是確認(rèn)程序系統(tǒng)是否滿足軟件需求規(guī)格說明書的要求
(4)系統(tǒng)測試,目的是檢查能否與系統(tǒng)的其余部分協(xié)調(diào)運(yùn)行精居,并且完成 SRS 對他的要求锄禽。
說明軟件測試和調(diào)試的目的有何區(qū)別?
測試的目的是判斷和發(fā)現(xiàn)軟件是否有錯誤靴姿,調(diào)試的目的是定位軟件錯誤并糾錯沃但。
簡述類和對象的定義及相互關(guān)系
類:是一系列對象的抽象描述,這些對象共享相同屬性佛吓、操作宵晚、關(guān)系和語義。
對象:是一個實(shí)體维雇、一件事淤刃、一個名詞,可以獲得的某種東西吱型,可以想象有自己標(biāo)識的任何事物逸贾,可以是物理存在、概念中或軟件中的實(shí)體唁影。
相互關(guān)系:
每一個類在某一時刻都有零個或更多的實(shí)體耕陷,每一個對象都是某一個類的實(shí)例。
類是靜態(tài)的据沈;類的存在哟沫、語義和關(guān)系在執(zhí)行前就已經(jīng)定義。對象是動態(tài)的锌介;它們在程序執(zhí)行時可以被創(chuàng)建和刪除
UML統(tǒng)一建模語言有哪幾種圖形嗜诀?
用例圖猾警、類圖、對象圖隆敢、構(gòu)件(組件)圖发皿、部署(配置)圖、狀態(tài)圖拂蝎、活動圖穴墅、順序(時序)圖、合作(協(xié)作)圖等九種圖温自。
簡述面向?qū)ο蠓椒▽W(xué)的四個基本特征(要點(diǎn))玄货?
抽象:就是過濾掉對象與當(dāng)前開發(fā)工作無關(guān)部分特性,只剩下所需要的屬性和操作悼泌。
繼承:是指一個對象直接從一個類中得到的屬性和方法松捉。
多態(tài):不同的類有時具有相同名稱的操作。
封裝:實(shí)質(zhì)是當(dāng)一個對象執(zhí)行自己的操作時馆里,它對外界隱藏了操作的細(xì)節(jié)隘世。
簡述狀態(tài)圖和活動圖的區(qū)別?
(1)活動圖用來建模某個過程的活動序列鸠踪,以活動為中心丙者。
(2)狀態(tài)圖用來建模對象生命期中的所有階段,以狀態(tài)為中心营密。
(3)活動圖中一個活動結(jié)束后將立即進(jìn)入下一個活動蔓钟,在狀態(tài)圖中狀態(tài)的轉(zhuǎn)移可能需事件的觸發(fā)。
軟件的維護(hù)一般分為哪幾類卵贱?
完善性維護(hù):滿足用戶在使用過程中提出增加新的功能或修改已有功能,以滿足用戶日益增長的需要而進(jìn)行的工作侣集;
適應(yīng)性維護(hù):是軟件適應(yīng)新的運(yùn)行環(huán)境而進(jìn)行的工作键俱;
糾錯性維護(hù):糾正開發(fā)期間未發(fā)現(xiàn)的遺留錯誤世分,即在程序使用期間發(fā)現(xiàn)的程序錯誤進(jìn)行診斷和改正的過程编振;
預(yù)防性維護(hù):為了改善未來的可維護(hù)性或可靠性而修改軟件的工作。
決定軟件可維護(hù)性的因素臭埋?
(1) 軟件的可理解性踪央、可測試性、可修改性瓢阴;
(2) 文檔描述符合要求畅蹂、用戶文檔簡潔明確、系統(tǒng)文檔完整并且標(biāo)準(zhǔn)荣恐。