第一篇:軟件工程學(xué)科軟件工程管理領(lǐng)域研究綜述1
軟件工程學(xué)科軟件工程管理領(lǐng)域研究綜述
1105103037 郭晴輝1105103001 戴慧明
(金陵科技學(xué)院,江蘇省南京市 211100)
e-mail:542930977@qq.com964085993@qq.com
摘要:計(jì)算機(jī)軟件工程管理對(duì)軟件項(xiàng)目的成功開發(fā)具有重要的意義,主要包括開發(fā)人員、組織結(jié)構(gòu)、用戶,控制和文檔管理。能力成熟模型(CMM)已被廣泛的應(yīng)用到軟件工程管理的過程中,成為軟件質(zhì)量保障的關(guān)鍵因素。CMM可以非常有效地控制軟件的開發(fā)過程,提高開發(fā)效率,改進(jìn)軟件的產(chǎn)品質(zhì)量。
關(guān)鍵詞:軟件工程;軟件工程管理;分布式軟件工程管理
中圖法分類號(hào):TP311.5文獻(xiàn)標(biāo)志碼:A
Softwareengineeringsoftware
engineeringmanagementresearchreview
1105103037 Guoqinghui1105103001 Daihuiming
(Jinling Institute of Technology, Nanjing City Jiangsu province,China)
Abstract:software engineering management is the successful development of software project has
An important meaningmainly including development personnel, organization,users,control document management.Capability maturity model(CMM)has been widely applied to software engineering management process,become the key factor of software quality guarantee.The CMM can be very effective control software development process,improve the efficiency of software development,improve the product quality.Key word:soft project;software engineering and management;distributed software project management
0.引言
任何工程的成敗,都與管理的好壞有密切的關(guān)系,軟件工程更不例外,一個(gè)軟件項(xiàng)目的成敗,很大程度上取決于項(xiàng)目負(fù)責(zé)人的管理水平和管理藝術(shù),軟件工程管理已開始引起計(jì)算機(jī)軟件界的重視。軟件工程管理就是對(duì)軟件項(xiàng)目開發(fā)過程的管理,是對(duì)整個(gè)軟件生命期的一切活動(dòng)進(jìn)行管理。
軟件工程管理目前還沒有引起人們的足夠的重視。究其原因:首先是人的傳統(tǒng)觀念,工程管理不為人們所重視;另一方面軟件工程是一個(gè)新興的學(xué)科領(lǐng)域,軟件工程管理的問題也是剛被提出的。同時(shí),由于軟件產(chǎn)品的特殊性,是軟件工程管理涉及到很多的學(xué)科。因此,對(duì)軟件工程管理,人們還缺乏經(jīng)驗(yàn)和技術(shù)。但事實(shí)證明,有管理失誤造成的后果要比程序錯(cuò)誤造成的后果更為嚴(yán)重。很少有軟件項(xiàng)目的實(shí)施過程能準(zhǔn)確地符合預(yù)定目標(biāo)、進(jìn)度和預(yù)算的,這也就足以說明軟件工程管理的重要性。軟件工程管理的現(xiàn)狀及特點(diǎn)
1.1 工程管理的內(nèi)涵
軟件工程管理的定義,美國(guó)PMI(Project Management Institute)對(duì)軟件工程管理作了如下解釋:軟件工程管理是為了完成一個(gè)項(xiàng)目的需求和目的,將相應(yīng)的知識(shí)、技術(shù)、工具以及技巧運(yùn)用到該項(xiàng)目的具體事務(wù)中去的工作,軟件工程管理的實(shí)踐是通過執(zhí)行以下的這些流程:?jiǎn)?dòng)、計(jì)劃、執(zhí)行、控制和結(jié)束。
PMI倡導(dǎo)的軟件工程管理理論的中心內(nèi)容是執(zhí)行軟件工程管理所需要的具體知識(shí),這些具體的知識(shí)根據(jù)普通軟件工程管理的概念就是如何實(shí)行和運(yùn)用這九個(gè)領(lǐng)域知識(shí),來對(duì)一個(gè)項(xiàng)目進(jìn)行管理。
1.2 軟件工程管理的特點(diǎn)
軟件工程管理的特殊性還體現(xiàn)在起管理過程以及內(nèi)容的特殊性。為保證軟件工程獲得成功,必須清楚其工作范圍、要完成的任務(wù)、需要的資源、需要的工作量、進(jìn)度的安排、可能遇到的風(fēng)險(xiǎn)等。軟件工程項(xiàng)目的管理工作必須開始于軟件卡發(fā)工作之前,并且要始終貫穿于整個(gè)軟件開發(fā)的過程之中,最后結(jié)束于整個(gè)軟件工程所有工作終止之時(shí)。PMI的定義包含了很多重要的理念,最重要的是制定了一個(gè)重要的準(zhǔn)則,就是實(shí)施流程管理,它明確的提出了軟件工程管理整個(gè)流程的五個(gè)階段,即啟動(dòng)、計(jì)劃、執(zhí)行、控制、結(jié)束。任何一個(gè)項(xiàng)目都是由開始到結(jié)束的一系列活動(dòng),具有從始至終、漸進(jìn)性的特征。一個(gè)項(xiàng)目的具體工作要分為幾個(gè)不走的過程來完成,這些過程稱為項(xiàng)目中的階段,一個(gè)項(xiàng)目從始至終所有階段的總和成為一個(gè)項(xiàng)目的生命周期。
1.3 當(dāng)前軟件工程管理面臨的問題
軟件工程管理是一個(gè)很有挑戰(zhàn)性和創(chuàng)造性的學(xué)科,并沒有一個(gè)非常成熟,放在哪里都行之有效的管理模式,對(duì)于國(guó)內(nèi)的一些中小企業(yè)來說,要想在競(jìng)爭(zhēng)激烈的市場(chǎng)上占有一席之地,實(shí)施軟件工程管理是必要的。但是實(shí)施軟件工程管理也并非易事,在軟件工程管理實(shí)施過程中,會(huì)面臨很多問題:
1.3.1 軟件工程需求分析與實(shí)際業(yè)務(wù)操作之間存在差距
軟件工程需求分析與實(shí)際的業(yè)務(wù)操作之間的問題是軟件工程管理中的一大難題。其產(chǎn)生的原因主要是軟件工程在需求分析階段中,對(duì)業(yè)務(wù)的數(shù)據(jù)、實(shí)體以及活動(dòng)進(jìn)行全面的調(diào)查,但是這些工作事實(shí)上都是對(duì)與業(yè)務(wù)表面內(nèi)容的淺顯分析,所形成的文檔對(duì)與詳細(xì)設(shè)計(jì)來說之具備框架式程度的作用,而忽略了業(yè)務(wù)的本質(zhì)--業(yè)務(wù)規(guī)則。這就直接導(dǎo)致了軟件設(shè)計(jì)人員在下一步的設(shè)計(jì)中,對(duì)于業(yè)務(wù)規(guī)則憑空想象,致使后期產(chǎn)品與業(yè)務(wù)的實(shí)際嚴(yán)重的背離。
1.3.2 錯(cuò)誤估計(jì)軟件管理的工作量
軟件工程的工作量的確存在較大的彈性空間,在軟件開發(fā)中,人為因素會(huì)對(duì)軟件開發(fā)的整體進(jìn)度產(chǎn)生重要的影響。諸如開發(fā)人員的工作態(tài)度、投入程度、自身的管理水平以及用戶是否配合、陪護(hù)的程度等等。假使我們?cè)谶@個(gè)過程中不考慮人為因素,那么在初步確定業(yè)務(wù)規(guī)則的前提下,應(yīng)當(dāng)比較容易估算出軟件開發(fā)的工作量。我們從而看出,當(dāng)前的軟件工程管理在許多方面都存在著改進(jìn)和研究的地方而這種改進(jìn)首先必須要以軟件的基本特點(diǎn)為前提,因此只有指出一項(xiàng)可以精準(zhǔn)、快速找到業(yè)務(wù)規(guī)則與數(shù)據(jù)的科學(xué)方法,才可以在多層次實(shí)現(xiàn)多規(guī)則。軟件工程管理的基本內(nèi)容
目前軟件生產(chǎn)自動(dòng)化程度很低,在開發(fā)過程中人是決定性的因素,因此,軟件工程管理很大程度上是對(duì)人的管理。我們可根據(jù)軟件產(chǎn)品的特點(diǎn),分析軟件工程管理的具體內(nèi)容,它主要包括對(duì)開發(fā)人員、組織機(jī)構(gòu)、用戶、文檔資料等方面的管理。
2.1 開發(fā)人員
軟件開發(fā)人員一般分為:項(xiàng)目負(fù)責(zé)人、系統(tǒng)分析員、高級(jí)程序員、初級(jí)程序員、資料員和其他輔助人員。根據(jù)項(xiàng)目的規(guī)模大小,有可能一人身兼數(shù)職,但職責(zé)必須明確。不同職責(zé)的人,要求的素質(zhì)不同。如項(xiàng)目負(fù)責(zé)人需要組織能力、判斷能力和對(duì)重大問題能做出決策的能力;系統(tǒng)分析員則有概括能力、分析能力和對(duì)重大問題能做出決策的能力;系統(tǒng)分析員則要有概括能力、分析能力和社交活動(dòng)能力;程序員需要有熟練的編程能力等。人員要少而精,選人要慎重。軟件生命期各個(gè)階段的活動(dòng)有分工又互相聯(lián)系。因此,要求選擇各類人員即能勝任工作,又要能相互很好的配合。沒有一個(gè)和諧的工作氣氛很難完成一個(gè)復(fù)雜的軟件項(xiàng)目。
2.2 組織結(jié)構(gòu)
組織結(jié)構(gòu)不等于開發(fā)人員的簡(jiǎn)單集合。這里的組織結(jié)構(gòu)要求:好的組織結(jié)構(gòu)、合理的人員分工和有效的通訊。軟件開發(fā)的組織結(jié)構(gòu)設(shè)有統(tǒng)一的模式。簡(jiǎn)單的來說可以分為三種組織結(jié)構(gòu):主程序員組、專家組和民主組織。其中以主程序員組織機(jī)構(gòu)最為常見。它有一位高級(jí)工程師(主程序員)、一位后援工程師、二到五位技術(shù)人員、一位資料員和支持工作人員組成,主程序員組的制度可以削弱軟件的“個(gè)人”性質(zhì),可以促進(jìn)更充分的復(fù)審,通過共同工作,相互學(xué)習(xí),不僅能提高軟件質(zhì)量,同時(shí)還能增加彼此的能力。主程序員組是軟件系統(tǒng)結(jié)構(gòu)化思想在組織上的體現(xiàn)。它的目的是為了保證全組的協(xié)調(diào)和統(tǒng)一。
2.3 用戶
在開發(fā)過程中自始至終必須得到用戶的密切合作和支持。作為項(xiàng)目負(fù)責(zé)人,要特別注意與用戶保持聯(lián)系,掌握用戶的心理和動(dòng)態(tài),正確應(yīng)對(duì)來自用戶的各種干擾和阻力,用戶的問題主要是以下幾種情況。
2.3.1 用戶不積極,不配合這種變現(xiàn)主要來自用戶中對(duì)采用先進(jìn)技術(shù)保持懷疑態(tài)度的人,他們心理上的抵觸情緒會(huì)在行動(dòng)上表現(xiàn)為消極,漠不關(guān)心。要真正了解到用戶的要求,就必須在需求階段做好這部分人的工作。要使他們認(rèn)識(shí)到計(jì)算機(jī)的發(fā)展和應(yīng)用是現(xiàn)代化的必然趨勢(shì),使用計(jì)算機(jī)將會(huì)帶來巨大的經(jīng)濟(jì)效益。
2.3.2 用戶求快求全
這種表現(xiàn)來自對(duì)使用計(jì)算機(jī)持積極態(tài)度的人。他們并不了解開發(fā)一個(gè)軟件項(xiàng)目不是一朝一夕的事,也不是采用人海戰(zhàn)術(shù)就能加快開發(fā)進(jìn)度的。要開發(fā)出好的系統(tǒng)就必須頂住來自用戶的壓力,要提醒用戶要根據(jù)現(xiàn)有的條件量力而行。不要催促開發(fā)進(jìn)程,也不要要求系統(tǒng)大而全,否則可能會(huì)導(dǎo)致一個(gè)系統(tǒng)的失敗或性能太差。
2.3.3 用戶需求變化
在軟件開發(fā)過程中,用戶可能會(huì)不斷提出新的要求和修改以前提出的要求。從軟件工程的角度,不希望有這種變化。但實(shí)際上,不允許用戶提出變動(dòng)的要求是不可能的。要正確的對(duì)待來自用戶的這種變化,在可能的條件下部分或有條件的滿足用戶的合理要求。但是在軟件開發(fā)后期,一般不可能滿足這種變化的要求。
2.4 控制
為保證軟件開發(fā)按預(yù)定的計(jì)劃進(jìn)行,對(duì)開發(fā)過程要實(shí)施控制??刂剖且杂?jì)劃為基礎(chǔ)的??刂频闹饕ㄟM(jìn)度控制、人員控制、經(jīng)費(fèi)控制和質(zhì)量控制、進(jìn)度控制是為了保證項(xiàng)目按預(yù)定的時(shí)間表進(jìn)行,由于軟件產(chǎn)品的特殊性和軟件工程的不成熟,制定軟件進(jìn)度計(jì)劃比較困難,因此在制定計(jì)劃時(shí)要適當(dāng)留有余地,進(jìn)度的拖延可能導(dǎo)致項(xiàng)目的失敗或失去先進(jìn)性,增加用
戶對(duì)開發(fā)機(jī)構(gòu)的不信任感和影響開發(fā)人員的積極性和穩(wěn)定性,人員的頻繁變更或流動(dòng)將會(huì)大大增加軟件出錯(cuò)誤的機(jī)會(huì),至少要保證軟件項(xiàng)目每一期工程或軟件生命期每一階段中人員的相對(duì)穩(wěn)定性,同時(shí)注意發(fā)揮每個(gè)開發(fā)人員的積極性和創(chuàng)造性;質(zhì)量控制與各階段的復(fù)審在意義和作用上是一致的;經(jīng)費(fèi)控制要編制詳細(xì)的經(jīng)費(fèi)預(yù)算,并在各階段進(jìn)行經(jīng)費(fèi)的核算。在經(jīng)費(fèi)上失去控制,軟件項(xiàng)目就沒有了保證。
2.5 文檔資料
文檔標(biāo)準(zhǔn)化是文檔管理的重要方面。開發(fā)過程的各種活動(dòng)都必須在文檔資料上反映出來。每一個(gè)階段的文檔資料是以后各階段工作的基礎(chǔ),又是對(duì)前面各階段工作的復(fù)審。軟件工程管理很大程度上是通過文檔資料管理來實(shí)現(xiàn)的。因此,要把開發(fā)過程中各階段的結(jié)果等建立成一套完整的文檔資料以備使用。改進(jìn)計(jì)算機(jī)軟件工程管理的思路
首先,統(tǒng)一軟件開發(fā)的平臺(tái)。軟件賴以運(yùn)行的平臺(tái)的不統(tǒng)一是制約軟件和軟件工程良好發(fā)展的重要原因之一,近些年來,信息技術(shù)的發(fā)展也為軟件業(yè)提供了廣闊的發(fā)展平臺(tái),網(wǎng)絡(luò)成就了身在各地、互不相識(shí)的軟件開發(fā)成員的共同合作,在這樣的背景下,普通的關(guān)鍵管理制度就會(huì)失去特色,會(huì)導(dǎo)致軟件開發(fā)過程中的失控;其次,改善軟件效率的方法。將修改數(shù)據(jù)的實(shí)現(xiàn),合理的分配到計(jì)算的不同層次上,從而大大的改善軟件的效率。比如對(duì)關(guān)系型數(shù)據(jù)可以將數(shù)據(jù)驅(qū)動(dòng)性規(guī)則、利用觸發(fā)器來實(shí)現(xiàn)等等。改善軟件工程管理的有效措施
4.1 提高軟件效率
現(xiàn)如今,有很多的計(jì)算機(jī)軟件設(shè)計(jì)員都是把訪問數(shù)據(jù)與修改機(jī)制在整個(gè)程序當(dāng)中,可以說這樣的程序最終實(shí)現(xiàn)了一切的業(yè)務(wù)規(guī)則。近幾年,由于數(shù)據(jù)庫(kù)與信息技術(shù)的高速發(fā)展,使網(wǎng)絡(luò)計(jì)算逐漸代替了數(shù)據(jù)修改必須由前臺(tái)程序控制的方法。因此,將修改數(shù)據(jù)程序,都分配到計(jì)算機(jī)的其他層次當(dāng)中,以此來提高軟件的工作效率。
4.2 軟件開發(fā)平臺(tái)要進(jìn)行統(tǒng)一規(guī)劃
影響計(jì)算機(jī)軟件發(fā)展的一個(gè)非常重要的原因就是軟件在運(yùn)行過程中的平臺(tái)不統(tǒng)一,這樣一來,大多數(shù)的軟件需要在各種平臺(tái)上反復(fù)的開發(fā)。經(jīng)年來,網(wǎng)絡(luò)發(fā)展非常迅速,這同時(shí)也為軟件業(yè)的發(fā)展搭建了良好的平臺(tái)。另外,不同國(guó)家和地區(qū)的計(jì)算機(jī)軟件開發(fā)人員可以聚集在一起,構(gòu)成一個(gè)開發(fā)小組,來共同開發(fā)一個(gè)計(jì)算機(jī)軟件。軟件設(shè)計(jì)思想得到了全面改革,雖然此軟件的開發(fā)還不夠成熟,但是卻對(duì)軟件的發(fā)展影響巨大。在這種情況下,依靠傳統(tǒng)的計(jì)算機(jī)軟件管理并不能表現(xiàn)出軟件行業(yè)的特點(diǎn),嚴(yán)重的可能會(huì)導(dǎo)致軟件開發(fā)的失控。結(jié)語(yǔ)
在當(dāng)今的軟件工程時(shí)代,每個(gè)項(xiàng)目涉及從多的人力和物力,管理問題日益突出。在實(shí)際工作中,不管是否正式提出管理問題,都在自覺或不自覺的進(jìn)行著管理,只不過是管理的好壞程度不同而已。隨著軟件規(guī)模的不斷增大,開發(fā)人員也隨著增多,開發(fā)時(shí)間也相應(yīng)持續(xù)增長(zhǎng)。而對(duì)于規(guī)模大、人員多、開發(fā)時(shí)間長(zhǎng)的軟件項(xiàng)目,必須要有良好的管理和力求在確定的時(shí)間和預(yù)算范圍內(nèi)有效地、合理的組織人力、物力,按計(jì)劃完成預(yù)定的軟件項(xiàng)目。
參考文獻(xiàn):
[1] 龔旭東.計(jì)算機(jī)軟件工程管理下作探析[D].浙江:寧波大學(xué).2006。
[2]湯克明.CMM實(shí)踐中的分布式軟件工程管理框架[D].揚(yáng)州:揚(yáng)州大學(xué).2002。
[3]吳浩明.軟件工程應(yīng)用使用教程[M].北京:清華大學(xué)出版社.2003。
[4]李靈芝.CMM在大型MIS開發(fā)中的應(yīng)用研究[D].武漢:武漢科技大學(xué)中南分校.2007。
[5]馮玉琳,趙寶華.軟件工程[M].合肥:中國(guó)科技大學(xué)出版社.1992。
[6]CMM(Capacity Maturity Model)[M].美國(guó)卡內(nèi)基-梅隆大學(xué)軟件工程研究院.1993。
[7]李萬軍,曹艷云.論計(jì)算機(jī)軟件工程管理工作[J].才智.2012(3)。
[8]李建兵.計(jì)算機(jī)軟件工程方法的進(jìn)展研究[J].新課程.教師.2011(8)。
[9]寧力.淺談?dòng)?jì)算機(jī)軟件工程管理工作[J].中國(guó)科技博覽.2011(30)。
[10]單勁虎.關(guān)于計(jì)算機(jī)軟件工程管理與應(yīng)用探討[J].科技風(fēng).2011(23)。
[11]吳浩明.袁山龍.軟件工程應(yīng)用實(shí)用教程[M].北京.清華大學(xué)出版社.2003。
第二篇:軟件工程一級(jí)學(xué)科
2017年軟件工程一級(jí)學(xué)科 攻讀博士學(xué)位研究生培養(yǎng)方案
一、適用學(xué)科、專業(yè):軟件工程(一級(jí)學(xué)科,工學(xué))
? 軟件工程理論(二級(jí)學(xué)科、專業(yè))? 軟件工程技術(shù)與管理(二級(jí)學(xué)科、專業(yè))? 信息系統(tǒng)工程(二級(jí)學(xué)科、專業(yè))? 軟件服務(wù)工程(二級(jí)學(xué)科、專業(yè))
二、培養(yǎng)方式
1.博士生培養(yǎng)實(shí)行導(dǎo)師負(fù)責(zé)制。必要時(shí)可由導(dǎo)師組織指導(dǎo)小組,指導(dǎo)小組成員必須具有副高級(jí)以上職稱或具有博士學(xué)位的講師。一般不設(shè)副導(dǎo)師,如論文工作特殊需要,經(jīng)審批同意后,導(dǎo)師可以聘任一名副教授及以上職稱的專家擔(dān)任其博士生的學(xué)位論文副指導(dǎo)教師。
2.跨一級(jí)學(xué)科(或交叉領(lǐng)域)培養(yǎng)博士生時(shí),應(yīng)從相關(guān)學(xué)科中聘請(qǐng)相關(guān)學(xué)科的博士生導(dǎo)師作為聯(lián)合指導(dǎo)教師,經(jīng)院系主管負(fù)責(zé)人審查批準(zhǔn)后,報(bào)校學(xué)位辦公室備案。3.建立規(guī)范化的學(xué)術(shù)交流和學(xué)術(shù)報(bào)告制度,按期檢查培養(yǎng)環(huán)節(jié)的完成情況。
4.導(dǎo)師應(yīng)有適于培養(yǎng)博士生的研究課題和充足的研究經(jīng)費(fèi)。導(dǎo)師(副導(dǎo)師或指導(dǎo)小組)應(yīng)與博士生定期交流,關(guān)心博士生的思想品德、業(yè)務(wù)能力和綜合素質(zhì)。促進(jìn)博士生德、智、體全面發(fā)展。
三、培養(yǎng)目標(biāo)及課程學(xué)習(xí)的基本要求
1.培養(yǎng)目標(biāo)
進(jìn)一步學(xué)習(xí)與掌握馬列主義、毛澤東思想和鄧小平理論,熱愛祖國(guó),遵紀(jì)守法,誠(chéng)信公正、有社會(huì)責(zé)任感;掌握軟件工程學(xué)科堅(jiān)實(shí)寬廣的基礎(chǔ)理論與系統(tǒng)深入的專門知識(shí),熟練掌握1-2門外國(guó)語(yǔ),具有獨(dú)立從事科學(xué)研究工作的能力,具有創(chuàng)新能力,在當(dāng)今快速變化的信息科學(xué)研究領(lǐng)域能起主導(dǎo)作用,能獨(dú)立提出和開展某一領(lǐng)域的科學(xué)研究,能從事高校教學(xué)工作,具有高層管理工作的能力的德、智、體全面發(fā)展的軟件工程領(lǐng)域的高級(jí)專門人才。2.課程學(xué)習(xí)及學(xué)分組成
普博生及論文博士生在攻讀博士學(xué)位期間,需獲得學(xué)位課程學(xué)分不少于19,其中公共必修課程不少于4學(xué)分,必修環(huán)節(jié)5學(xué)分,學(xué)術(shù)與職業(yè)素養(yǎng)課程不少于1學(xué)分。
直博生在攻讀博士學(xué)位期間,需獲得學(xué)位課程學(xué)分不少于35,其中公共必修課程不少于5學(xué)分,學(xué)科專業(yè)課程學(xué)分不少于24,必修環(huán)節(jié)5學(xué)分,學(xué)術(shù)與職業(yè)素養(yǎng)課程不少于1學(xué)分。提前攻博生的學(xué)分要求同直博生。
四、課程設(shè)置
1.公共必修課程(普博生4學(xué)分,直博生5學(xué)分)
? 中國(guó)馬克思主義與當(dāng)代 ? 自然辯證法概論
? 博士生英語(yǔ)
(90680032)2學(xué)分(考試)所有博士生必修
(60680021)1學(xué)分(考試)直博生必修
(90640012)2學(xué)分(考試)所有博士生必修
2、學(xué)科專業(yè)課程(普博生不少于9學(xué)分,直博生不少于24學(xué)分)(1)基礎(chǔ)理論課(普博生不少于3學(xué)分,直博生不少于6學(xué)分)
? 組合數(shù)學(xué)
(74100043)3學(xué)分 ? 計(jì)算幾何
(70240183)3學(xué)分 ? 形式語(yǔ)義學(xué)
(74100192)2學(xué)分 ? 高等數(shù)值分析
(60420024)4學(xué)分 ? 應(yīng)用近世代數(shù)
(60420153)3學(xué)分 ? 最優(yōu)化方法
(60420194)4學(xué)分 ? 現(xiàn)代優(yōu)化算法
(60420174)4學(xué)分 ? 不確定規(guī)劃
(60420214)4學(xué)分 ? 隨機(jī)過程
(60230014)4學(xué)分 ? 應(yīng)用隨機(jī)過程
(60420094)4學(xué)分 ? 概率論與隨機(jī)過程
(80420934)
4學(xué)分 ? 基礎(chǔ)泛函分析
(60420144)
4學(xué)分(2)專業(yè)課程 A組
? 軟件度量技術(shù)
(74100142)2學(xué)分 ? 軟件需求工程
(84100102)
2學(xué)分 ? 軟件測(cè)試技術(shù)
(74100132)2學(xué)分 ? 電子商務(wù)概論
(84100122)2學(xué)分 ? 電子政務(wù)概論
(84100132)
2學(xué)分 B組
? 網(wǎng)絡(luò)系統(tǒng)建模與分析
(84100242)2學(xué)分 ? 計(jì)算機(jī)網(wǎng)絡(luò)前沿研究
(84100222)
2學(xué)分
? 網(wǎng)絡(luò)與信息安全技術(shù)
(74100102)
2學(xué)分
? 應(yīng)用密碼學(xué)
(84100182)
2學(xué)分
? 網(wǎng)絡(luò)測(cè)量與分析技術(shù)
(84100232)
2學(xué)分
(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考試)(考查)(考試)(考查)(考試)C組
? 機(jī)器學(xué)習(xí)與知識(shí)發(fā)現(xiàn)
? 數(shù)據(jù)質(zhì)量
(84100082)
(84100212)
(74100162)
(74100052)
(74100072)
(74100062)
2學(xué)分(考試)2學(xué)分(考試)2學(xué)分
(考試)2學(xué)分(考試)2學(xué)分
(考試)2學(xué)分(考試)2學(xué)分(考試)2學(xué)分(考試)? 現(xiàn)代數(shù)據(jù)庫(kù)系統(tǒng)概論
? 工作流技術(shù)基礎(chǔ)
? 數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘
? 數(shù)據(jù)庫(kù)管理技術(shù)
? 大規(guī)模多媒體信息管理與檢索
(74100202)? 數(shù)據(jù)集成
D組
? 領(lǐng)域特定語(yǔ)言設(shè)計(jì)
(84100293)
(84100282)
(84100192)
(84100312)
3學(xué)分
(考試)
2學(xué)分(考試)
2學(xué)分
(考試)? 嵌入式系統(tǒng)建模與分析技術(shù) ? 軟件形式化驗(yàn)證
? 數(shù)據(jù)流系統(tǒng)建模與Simulink仿真(74100222)
2學(xué)分
(考試)? 高性能計(jì)算機(jī)互連理論與方法
(74100233)
3學(xué)分(考試)
? 嵌入式系統(tǒng)體系結(jié)構(gòu)
(84100332)
2學(xué)分(考試)
E組
? 計(jì)算機(jī)輔助幾何造型
? 數(shù)字幾何處理
(84100253)
(84100272)
(84100262)
(84100142)
(84100322)
3學(xué)分(考試)2學(xué)分
(考試)2學(xué)分
(考試)2學(xué)分
(考查)2學(xué)分(考試)? 真實(shí)感渲染技術(shù)
? 并行程序設(shè)計(jì)
? 信息可視化與可視分析
博士生的專業(yè)知識(shí)面應(yīng)具有一定的寬度,直博生所選課程應(yīng)至少涵蓋以上A~E組課程中的三組,普博生所選課程應(yīng)至少涵蓋以上A~E組課程中的兩組。
經(jīng)導(dǎo)師同意,可選信息學(xué)院博士生培養(yǎng)方案中的相關(guān)課程。
3.學(xué)術(shù)與職業(yè)素養(yǎng)課程(不少于1學(xué)分)
? 學(xué)術(shù)規(guī)范課程
? 研究生學(xué)術(shù)與職業(yè)素養(yǎng)講座課程(62550031)1學(xué)分(考查)? 其他研究生學(xué)術(shù)與職業(yè)素養(yǎng)平臺(tái)課程 4.必修環(huán)節(jié)(5學(xué)分)
? 資格考試
(99990061)(99990041)
1學(xué)分(考試)1學(xué)分(考查)2學(xué)分(考查)1學(xué)分(考查)? 文獻(xiàn)綜述與選題報(bào)告
? 學(xué)術(shù)活動(dòng)與學(xué)術(shù)報(bào)告
? 社會(huì)實(shí)踐
5、非學(xué)位課程
(99990032)
(69990041)
為了擴(kuò)大知識(shí)面,可由導(dǎo)師指定或研究生本人自選如下課程。課程列入個(gè)人培養(yǎng)計(jì)劃,可記非學(xué)位課程學(xué)分。
(1)跨一級(jí)學(xué)科的其它專業(yè)課程;
(2)選修人文、社科、經(jīng)濟(jì)、管理、環(huán)境類課程或信息類學(xué)科的前沿課程。
6、自學(xué)課程
涉及與研究課題有關(guān)的專門知識(shí),由導(dǎo)師指定內(nèi)容系統(tǒng)地自學(xué),可列入個(gè)人培養(yǎng)計(jì)劃,記為非學(xué)位課程學(xué)分。
7、補(bǔ)修課程
凡在本門學(xué)科上欠缺碩士層次業(yè)務(wù)基礎(chǔ)的博士研究生,一般應(yīng)在導(dǎo)師指導(dǎo)下補(bǔ)修有關(guān)課程。補(bǔ)修課可記非學(xué)位課程學(xué)分。
五、主要培養(yǎng)環(huán)節(jié)及有關(guān)要求
1.制定個(gè)人培養(yǎng)計(jì)劃
博士生入學(xué)后三周內(nèi),在導(dǎo)師指導(dǎo)下完成個(gè)人培養(yǎng)計(jì)劃,內(nèi)容包括:研究方向、課程學(xué)習(xí)、文獻(xiàn)閱讀、選題報(bào)告、科學(xué)研究、學(xué)術(shù)交流、學(xué)位論文及實(shí)踐環(huán)節(jié)等方面的要求和進(jìn)度計(jì)劃。經(jīng)導(dǎo)師確認(rèn)簽字后,由學(xué)院教學(xué)主管核準(zhǔn),交學(xué)院業(yè)務(wù)辦備案。2.選題報(bào)告與資格考試
博士生的資格考試結(jié)合選題報(bào)告以口試的方式進(jìn)行,每學(xué)期組織一次,由博士生本人提交書面申請(qǐng),教學(xué)辦公室統(tǒng)一安排。資格考試委員會(huì)由不少于7名具有高級(jí)技術(shù)職稱、或副高技術(shù)職稱(有博士學(xué)位)的教師組成(其中博士生導(dǎo)師至少4人,學(xué)位分委員會(huì)委員至少1人)。博士生首先作論文選題報(bào)告,隨后,資格考試委員會(huì)就有關(guān)問題提問,全面考查博士生的學(xué)科和專業(yè)基礎(chǔ)以及綜合素質(zhì)。
選題報(bào)告一般須在論文答辯兩年前完成。普博生的資格考試一般安排在第三學(xué)期進(jìn)行。直博生的資格考試一般安排在第五學(xué)期進(jìn)行。
選題報(bào)告應(yīng)包括文獻(xiàn)綜述、論文選題及其意義、主要研究?jī)?nèi)容、可行性、工作特色及難點(diǎn)、預(yù)期成果及可能的創(chuàng)新點(diǎn),論文工作計(jì)劃、發(fā)表文章計(jì)劃等。評(píng)審?fù)ㄟ^的選題報(bào)告以書面形式交系教學(xué)辦公室備案。資格考試成績(jī)由兩部分組成:
直博生:學(xué)位課成績(jī)占40%,考試和評(píng)審小組打分占60%。普博生:學(xué)位課成績(jī)占30%,考試和評(píng)審小組打分占70%。
資格考試按成績(jī)排序,每次資格考試的通過率不超過80%,考試不通過者可申請(qǐng)參加下次資格考試。資格考試通過兩學(xué)年后方可申請(qǐng)博士學(xué)位論文答辯。
有關(guān)資格考試的執(zhí)行細(xì)則見附錄1。3.進(jìn)展報(bào)告
為了使學(xué)位分委員會(huì)、教學(xué)辦更好地了解博士生研究進(jìn)展,督促博士生做好學(xué)位論文的研究工作,已資格考試(開題)的博士生,和到期卻未參加資格考試的博士生,需于每年9月1日前,提交有導(dǎo)師簽字確認(rèn)的研究進(jìn)展報(bào)告一式三份及電子版一份。教學(xué)辦組織專家評(píng)審,并將評(píng)審結(jié)果通知指導(dǎo)教師及本人。進(jìn)展報(bào)告的格式見附錄2。4.社會(huì)實(shí)踐
按照“清華大學(xué)研究生社會(huì)實(shí)踐管理規(guī)定”執(zhí)行。5.學(xué)術(shù)活動(dòng)與學(xué)術(shù)報(bào)告
實(shí)行博士生學(xué)術(shù)報(bào)告制度。博士生在論文工作期間每學(xué)期至少做一次學(xué)術(shù)報(bào)告;至少有一次在全國(guó)性或國(guó)際學(xué)術(shù)會(huì)議上報(bào)告自己撰寫的論文。博士生在學(xué)期間應(yīng)參加30次以上學(xué)術(shù)報(bào)告,其中至少2次為跨二級(jí)學(xué)科的學(xué)術(shù)報(bào)告。6.學(xué)術(shù)論文發(fā)表的要求
首先要以博士生發(fā)表和錄用的學(xué)術(shù)論文水平為前提,同時(shí)要求申請(qǐng)學(xué)位論文答辯的博士生至少應(yīng)在國(guó)內(nèi)外學(xué)術(shù)刊物和學(xué)術(shù)會(huì)議上發(fā)表或錄用論文,具體規(guī)定如下:
① 發(fā)表論文,獲得獎(jiǎng)勵(lì),獲得授權(quán)專利均能獲得相應(yīng)分值,博士生必須至少獲得6分才能申請(qǐng)學(xué)位;
② 在中國(guó)計(jì)算機(jī)學(xué)會(huì)推薦國(guó)際學(xué)術(shù)會(huì)議和期刊發(fā)表論文的分值如下:A類5分,B類3分,C類1.5分;在中國(guó)計(jì)算機(jī)學(xué)會(huì)推薦國(guó)際學(xué)術(shù)會(huì)議和期刊之外的SCI和EI刊物發(fā)表論文為1分;
③ 鼓勵(lì)研究生在完成系統(tǒng)開發(fā)的基礎(chǔ)上,申請(qǐng)科技獎(jiǎng)勵(lì)和申報(bào)專利,博士生作為完成人獲得國(guó)家級(jí)獎(jiǎng)勵(lì) 3 分,省部級(jí)一等獎(jiǎng) 2 分,二等獎(jiǎng) 1 分;獲得授權(quán)專利(博士生為第一發(fā)明人或者導(dǎo)師為第一發(fā)明人時(shí)博士生為第二發(fā)明人)得 1 分,專利最多累計(jì) 2 分; ④ 鼓勵(lì)研究生參與國(guó)際標(biāo)準(zhǔn)制定工作,凡在正式發(fā)布的國(guó)際標(biāo)準(zhǔn)(包括 IETF,ITU,ISO/IEC 和其他學(xué)位分委員會(huì)認(rèn)定的國(guó)際標(biāo)準(zhǔn)化組織制定的標(biāo)準(zhǔn))署名的博士生均可獲得 2分,此項(xiàng)最多計(jì)算一次。補(bǔ)充說明:
(1)中國(guó)計(jì)算機(jī)學(xué)會(huì)推薦國(guó)際學(xué)術(shù)會(huì)議和期刊列表(以下簡(jiǎn)稱計(jì)算機(jī)學(xué)會(huì)列表)參見中國(guó)計(jì)算機(jī)學(xué)會(huì)網(wǎng)站 http://004km.cn 除此列表之外,ACL,Supercomputing,DAC會(huì)議均按照A類會(huì)議計(jì)算。
(2)對(duì)于博士生發(fā)表在中國(guó)計(jì)算機(jī)學(xué)會(huì)列表之外的刊物和會(huì)議的論文,如果導(dǎo)師認(rèn)為其水平達(dá)到了計(jì)算機(jī)學(xué)會(huì)列表的相應(yīng)等級(jí),可以由導(dǎo)師提出書面申請(qǐng),學(xué)位分委員會(huì)組織專家組予以認(rèn)定,根據(jù)認(rèn)定結(jié)果計(jì)算相應(yīng)的分值。7.最終學(xué)術(shù)報(bào)告
在博士學(xué)位論文工作基本完成以后,至遲于正式申請(qǐng)答辯前三個(gè)月,做一次論文工作總結(jié)報(bào)告,由至少5位具有高級(jí)技術(shù)職稱的教師(其中博士生導(dǎo)師至少3人)組成的審查小組,對(duì)論文工作的內(nèi)容、創(chuàng)新性進(jìn)行審查。審查小組應(yīng)嚴(yán)格要求,對(duì)達(dá)不到博士學(xué)位論文要求的,應(yīng)要求延期答辯,并至少3個(gè)月后重新做最終學(xué)術(shù)報(bào)告。
六、學(xué)位論文工作及要求
1、博士學(xué)位論文是博士生培養(yǎng)質(zhì)量和學(xué)術(shù)水平的集中反映,應(yīng)在導(dǎo)師指導(dǎo)下由博士生獨(dú)立完成。
2、博士學(xué)位論文應(yīng)是系統(tǒng)完整的學(xué)術(shù)論文,應(yīng)在科學(xué)上或?qū)iT技術(shù)上做出創(chuàng)造性的學(xué)術(shù)成果,應(yīng)能反映出博士生已經(jīng)掌握了堅(jiān)實(shí)寬廣的基礎(chǔ)理論和系統(tǒng)深入的專門知識(shí),具備了獨(dú)立從事教學(xué)或科學(xué)研究工作的能力。
3、學(xué)位論文工作時(shí)間要求:直博生原則上入學(xué)5年后學(xué)位分委員會(huì)才受理學(xué)位答辯申請(qǐng),普博生原則上4年后學(xué)位分委員會(huì)才受理學(xué)位答辯申請(qǐng)。碩士生提前攻讀博士學(xué)位的學(xué)生原則上等同于直博生,入學(xué)年月從碩士入學(xué)算起。
附錄1:軟件學(xué)院博士生資格考試執(zhí)行細(xì)則
一、博士生資格考試對(duì)象:所有在讀博士生(含直博生)。
二、考試方式:
博士生資格考試結(jié)合選題報(bào)告以口試的方式進(jìn)行。
三、考試時(shí)間安排:
每學(xué)期舉行一次考試。一般安排在第三周。
每學(xué)期開學(xué)時(shí)要參加資格考試的博士生向教學(xué)辦公室提交書面申請(qǐng),教學(xué)辦公室在第二周末將每人的考試時(shí)間、地點(diǎn)、分組情況等安排通知到報(bào)名參加資格考試的博士生。
四、申請(qǐng)參加資格考試的條件: 符合下列三個(gè)條件的博士生可以申請(qǐng)參加資格考試:
1、課程學(xué)習(xí)全部結(jié)束且成績(jī)合格;
2、完成書面選題報(bào)告且經(jīng)導(dǎo)師審查通過;
3、導(dǎo)師經(jīng)全面審查該博士生的情況,同意他參加資格考試;
直博生一般在第五學(xué)期申請(qǐng)資格考試。普博生一般在第三學(xué)期申請(qǐng)資格考試。
五、考試內(nèi)容與進(jìn)行順序:
1、博士生作選題報(bào)告,時(shí)間30分鐘;
2、資格考試委員會(huì)委員提問,時(shí)間30-60分鐘;
3、提問內(nèi)容:
? 選題報(bào)告內(nèi)容; ? 論文方向的學(xué)術(shù)前沿; ? 理論基礎(chǔ)知識(shí)、專業(yè)知識(shí)內(nèi)容;
? 資格考試委員會(huì)老師感興趣的有關(guān)內(nèi)容提問。
4、每位考試委員打分(滿分100)。未全程參加的資格考試委員會(huì)委員不能投票。
5、選題報(bào)告成績(jī)=∑每位資格考試委員所給成績(jī)÷考試委員人數(shù)
6、如考試委員會(huì)老師經(jīng)討論,認(rèn)為有些博士生要加試某些內(nèi)容,則以筆試形式進(jìn)行,時(shí)間另行安排。
六、資格考試成績(jī)(滿分 100分):
1、首次參加資格考試的普博生:
學(xué)位課程平均成績(jī)×30% +(∑每位資格考試委員所給成績(jī)÷考試委員人數(shù))×70%
2、首次參加資格考試的直博生:
學(xué)位課程平均成績(jī)×40% +(∑每位資格考試委員所給成績(jī)÷考試委員人數(shù))×60%
3、第二次參加資格考試的博士生(包括普博生和直博生): 資格考生成績(jī) =(∑每位資格考試委員所給成績(jī)÷考試委員人數(shù))×100%
七、通過資格考試的要求:
教學(xué)辦公室將每一位博士生的資格考試成績(jī)按組進(jìn)行排序,每次資格考試的通過率不超過80%,并在“資格考試表”中記載資格考試委員會(huì)名單、資格考試成績(jī)及是否通過資格考試的結(jié)論,考試成績(jī)記載入博士生的成績(jī)冊(cè),“資格考試表”最后由該生的資格考試委員會(huì)組長(zhǎng)審定并簽字存檔。
資格考試通過的博士生的考試成績(jī)以最低分為70分進(jìn)行歸一化,進(jìn)行分類,分別以5分為一擋,即分別記為75、80、85、90分、特別優(yōu)秀的可記為95、100分。
八、資格考試不通過的博士生可以在下一學(xué)期或以后的學(xué)期再申請(qǐng)參加考試,不通過的次數(shù)不作限制,但論文實(shí)際工作時(shí)間從資格考試通過時(shí)開始計(jì)算,且論文實(shí)際工作時(shí)間不得少于兩學(xué)年。資格考試通過兩學(xué)年后方可申請(qǐng)答辯。
九、資格考試委員會(huì)組成:
1、組成人數(shù) :不少于7人。
2、組成人員 :資格考試委員會(huì)應(yīng)具有高級(jí)技術(shù)職稱、或副高技術(shù)職稱且獲博士學(xué)位,其中博士生導(dǎo)師至少4人,學(xué)位分委員會(huì)委員至少1人。
參加考試的博士生的導(dǎo)師可以參加該生的資格考試委員會(huì)。
資格考試委員會(huì)組長(zhǎng)必須是學(xué)位分委員會(huì)委員。組長(zhǎng)與學(xué)院學(xué)術(shù)委員會(huì)主席一起審定資格考試委員會(huì)成員名單。組長(zhǎng)的職責(zé)是:負(fù)責(zé)資格考試過程的組織、收集每位委員的評(píng)分,組織考試中特殊問題的討論并做出結(jié)論,審定博士生的“資格考試表”并簽字。附錄2:軟件學(xué)院博士生進(jìn)展報(bào)告的格式
軟件學(xué)院博士生進(jìn)展報(bào)告應(yīng)按以下格式認(rèn)真書寫,并由導(dǎo)師審查格式、內(nèi)容是否符合要求,并確認(rèn)簽字。1.封面及規(guī)格
封面應(yīng)包括:開題的博士學(xué)位論文題目,或博士學(xué)位論文的研究方向、博士生姓名、博士生學(xué)號(hào)、導(dǎo)師姓名、博士生聯(lián)系電話、博士生email、提交時(shí)間等信息
報(bào)告用用A4紙打??;邊距為:上2.5cm, 下 2.5cm,左3cm,右2.5cm;行間距為1.25倍行距,段前0.15倍行距;字體:宋體;字號(hào):小四。
2.報(bào)告主體的要求
報(bào)告的主體應(yīng)包括:
1)博士學(xué)位論文選題、研究目標(biāo) 2)研究背景
3)一年來的研究?jī)?nèi)容、進(jìn)展 4)投稿、發(fā)表論文情況 5)下一步研究設(shè)想 6)發(fā)表論文計(jì)劃
要求博士生認(rèn)真書寫進(jìn)展報(bào)告,報(bào)告應(yīng)10000字以上。3.導(dǎo)師確認(rèn)及簽字
導(dǎo)師應(yīng)認(rèn)真審讀博士生的進(jìn)展報(bào)告;就進(jìn)展報(bào)告的真實(shí)性、研究成果的創(chuàng)新性、研究計(jì)劃的可行性,給出評(píng)價(jià)。并簽字確認(rèn)。
學(xué)位評(píng)定分委員會(huì)主席簽字(蓋章):
2017年6月9日
第三篇:軟件工程
2.2軟件開發(fā)的基本策略
人們都有自己的世界觀和方法論,能自然而然地運(yùn)用于生活和工作中。同樣,程序員腦子里的軟件工程觀念會(huì)無形地支配其怎么去做事情。軟件工程三十年的發(fā)展,已經(jīng)積累了相當(dāng)多的方法,但這些方法不是嚴(yán)密的理論。實(shí)踐人員不應(yīng)該教條地套用方法,更重要的是學(xué)會(huì)“選擇合適的方法”和“產(chǎn)生新方法”。有謀略才會(huì)有好的戰(zhàn)術(shù)。幾千年前,我們的祖先就在打鬧之際寫下了很多心得體會(huì),被現(xiàn)代人很好地運(yùn)用于工業(yè)和商業(yè)。本節(jié)講述軟件開發(fā)中的三種基本策略:“復(fù)用”、“分而治之”、“優(yōu)化——折衷”。
2.2.1復(fù)用
復(fù)用就是指“利用現(xiàn)成的東西”,文人稱之為“拿來主義”。被復(fù)用的對(duì)象可以是有形的物體,也可以是無形的成果。復(fù)用不是人類懶惰的表現(xiàn)而是智慧的表現(xiàn)。因?yàn)槿祟惪偸窃诶^承了前人的成果,不斷加以利用、改進(jìn)或創(chuàng)新后才會(huì)進(jìn)步。所以當(dāng)我們歡度國(guó)慶時(shí),要搞清楚祖國(guó)遠(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é)者的口頭禪就是“請(qǐng)不要再發(fā)明相同的車輪子了”。
將具有一定集成度并可以重復(fù)使用的軟件組成單元稱為軟構(gòu)件(Software Component)。軟件復(fù)用可以表述為:構(gòu)造新的軟件系統(tǒng)可以不必每次從零做起,直接使用已有的軟構(gòu)件,即可組裝(或加以合理修改)成新的系統(tǒng)。復(fù)用方法合理化并簡(jiǎn)化了軟件開發(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ū)ο蠓椒?,Microsoft公司的COM規(guī)范 [Rogerson 1999],都能很好地用于實(shí)現(xiàn)大規(guī)模的軟件復(fù)用。
2.2.2分而治之
分而治之是指把一個(gè)復(fù)雜的問題分解成若干個(gè)簡(jiǎn)單的問題,然后逐個(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)行速度,提高對(duì)內(nèi)存資源的利用率,使用戶界面更加友好,使三維圖形的真實(shí)感更強(qiáng)等等。想做好優(yōu)化工作,首先要讓開發(fā)人員都有正確的認(rèn)識(shí):優(yōu)化工作不是可有可無的事情,而是必須要做的事情。當(dāng)優(yōu)化工作成為一種責(zé)任時(shí),程序員才會(huì)不斷改進(jìn)軟件中的算法,數(shù)據(jù)結(jié)構(gòu)和程序組織,從而提高軟件質(zhì)量。
著名的3D游戲軟件Quake,能夠在PC機(jī)上實(shí)時(shí)地繪制高度真實(shí)感的復(fù)雜場(chǎng)景。Quake的開發(fā)者能把很多成熟的圖形技術(shù)發(fā)揮到極致,例如把Bresenham畫線、多邊形裁剪、樹遍歷等算法的速度提高近一個(gè)數(shù)量級(jí)。我第一次看到Quake時(shí)不僅感到震動(dòng),而且深受打擊。這個(gè)PC游戲軟件的技術(shù)水平已經(jīng)遠(yuǎn)勝于我所見識(shí)到的國(guó)內(nèi)領(lǐng)先的圖形學(xué)相關(guān)科研成果。這對(duì)我們?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動(dòng)畫軟件的瓶頸通常是速度,但如果為了提高速度而在程序中取消光照明計(jì)算,那么場(chǎng)景就會(huì)喪失真實(shí)感,3D動(dòng)畫也就不再有意義了(如果人類全是色盲,計(jì)算機(jī)圖形學(xué)將變得異常簡(jiǎn)單)。
人都有惰性,如果允許濫用折衷的話,那么一當(dāng)碰到困難,人們就會(huì)用拆東墻補(bǔ)西墻的方式去折衷,不再下苦功去做有意義的優(yōu)化。所以我們有必要為折衷制定嚴(yán)正的立場(chǎng):在保證其它因素不差的前提下,使某些因素變得更好。
下面讓我們用“優(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ǎng)盛不衰。祖?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)目增添新手,可能會(huì)更加延誤項(xiàng)目。因?yàn)椋海?)新手會(huì)產(chǎn)生很多新的錯(cuò)誤,使項(xiàng)目混亂。(2)老手向新手解釋工作以及交流思想都要花費(fèi)時(shí)間,使實(shí)際開發(fā)時(shí)間更少。所以科學(xué)的項(xiàng)目計(jì)劃很重要,不在乎計(jì)劃能提前多少,重在恰如其分。如果用“大躍進(jìn)”的方式奔向共產(chǎn)主義,只會(huì)產(chǎn)生倒退的后果。
觀念之四:既然需求分析很困難,不管三七二十一先把軟件做了再說,反正軟件是靈活的,隨時(shí)可以修改。
客觀情況:對(duì)需求把握得越準(zhǔn)確,軟件的修修補(bǔ)補(bǔ)就越少。有些需求在一開始時(shí)很難確定,在開發(fā)過程中要不斷地加以改正。軟件修改越早代價(jià)越少,修改越晚代價(jià)越大,就跟治病一樣道理。
2.4一些有爭(zhēng)議的觀念
本節(jié)探討一些有爭(zhēng)議的觀念,目的不在于得出“正確”或“錯(cuò)誤”的評(píng)斷,而在于爭(zhēng)議會(huì)激發(fā)更多理性的思考。
爭(zhēng)議之一:如果軟件運(yùn)行較慢,是換一臺(tái)更快的計(jì)算機(jī),還是設(shè)計(jì)一種更快的算法?
作者觀點(diǎn):如果開發(fā)軟件的目的是為了學(xué)習(xí)或是研究,那么應(yīng)該設(shè)計(jì)一種更快的算法。如果該軟件已經(jīng)用于商業(yè),則需謹(jǐn)慎考慮:若換一臺(tái)更快的計(jì)算機(jī)能解決問題,則是最快的解決方案。改進(jìn)算法雖然可以從根本上提高軟件的運(yùn)行速度,但可能引入錯(cuò)誤以及延誤進(jìn)程。技術(shù)狂毫無疑問會(huì)選擇后者,因?yàn)樗麄冇X得放棄任何可以優(yōu)化的機(jī)會(huì)就等于犯罪。
類似的爭(zhēng)議還有:是買現(xiàn)成的程序,還是徹底自己開發(fā)?技術(shù)人員和商業(yè)人士常常會(huì)有不同的選擇。
爭(zhēng)議之二:有最好的軟件工程方法,最好的編程語(yǔ)言嗎?
作者觀點(diǎn):在軟件領(lǐng)域永遠(yuǎn)沒有最好的,只有更好的。能解決問題的都是好方法或是好語(yǔ)言。程序員在最初學(xué)習(xí)Basic、Fortran、Pascal、C、C++等語(yǔ)言時(shí)會(huì)感覺一個(gè)比一個(gè)好,不免有喜新厭舊之舉。而如今 的Visual Basic、Delphi、Visual C++、Java等語(yǔ)言各有所長(zhǎng),真的難分優(yōu)劣。開發(fā)人員應(yīng)該根據(jù)客觀條件,選擇自己熟悉的方法和語(yǔ)言,才能保證合格的質(zhì)量與生產(chǎn)率。
程序設(shè)計(jì)是自由與快樂的事情,不要發(fā)誓忠于某某主義而自尋煩惱。
爭(zhēng)議之三:編程時(shí)是否應(yīng)該多使用技巧?
作者觀點(diǎn):就軟件開發(fā)而言,技巧的優(yōu)點(diǎn)在于能另辟蹊徑地解決一些問題,缺點(diǎn)是技巧并不為人熟知。若在程序中用太多的技巧,可能會(huì)留下隱患,別人也難以理解程序。鑒于一個(gè)局部的優(yōu)點(diǎn)對(duì)整個(gè)系統(tǒng)而言是微不足道的,而一個(gè)錯(cuò)誤則可能是致命的。作者建議用自然的方式編程,少用技巧。
《狼三則》的故事告訴我們“失敗的技巧通常是技倆”。當(dāng)我們?cè)诰幊虝r(shí)無法判斷是用了技巧還是用了技倆,那就少用。《賣油翁》的故事又告訴我們“熟能生巧”,表明技巧是自然而然產(chǎn)生的,而不是賣弄出來的。賣油翁的絕技是可到中央電視臺(tái)表演的,而他老人家卻謙虛地說:“沒啥沒啥,用熟了而已”。
爭(zhēng)議之四:軟件中的錯(cuò)誤是否可按嚴(yán)重程度分等級(jí)?
作者觀點(diǎn):在定量分析時(shí),可以將錯(cuò)誤分等級(jí),以便于管理。微軟的一些開發(fā)小組將錯(cuò)誤分成四個(gè)等級(jí) [Cusumano 1996],如表1.1所示。
一級(jí)嚴(yán)重:錯(cuò)誤導(dǎo)致軟件崩潰。
二級(jí)嚴(yán)重:錯(cuò)誤導(dǎo)致一個(gè)特性不能運(yùn)行并且沒有替代方案。
三級(jí)嚴(yán)重:錯(cuò)誤導(dǎo)致一個(gè)特性不能運(yùn)行但有替代方案。
四級(jí)嚴(yán)重:錯(cuò)誤是表面化的或是微小的。
表1.1 錯(cuò)誤的四個(gè)等級(jí)
上述分類是非常技術(shù)性的,并不是普適的。假設(shè)某個(gè)財(cái)務(wù)軟件有兩個(gè)錯(cuò)誤:錯(cuò)誤A使該軟件死掉,錯(cuò)誤B導(dǎo)致工資計(jì)算錯(cuò)誤。按表1.1分類,錯(cuò)誤A屬一級(jí)嚴(yán)重,錯(cuò)誤B屬二級(jí)嚴(yán)重。但事實(shí)上B要比A嚴(yán)重。工資算多了或者算少了,將會(huì)使老板或員工遭受經(jīng)濟(jì)損失。而錯(cuò)誤A只使操作員感到厭煩,并沒有造成經(jīng)濟(jì)損失。另一個(gè)示例是操作手冊(cè)寫錯(cuò),按表1.1分類則屬四級(jí)嚴(yán)重,但這種錯(cuò)誤可能導(dǎo)致機(jī)毀人亡。
開發(fā)人員應(yīng)該意識(shí)到:所有的錯(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í),他們會(huì)自豪地說:“看看我們通過努力取得的成績(jī)吧”。所以管理者不能老惦記著自己是一個(gè)官,而應(yīng)時(shí)刻意識(shí)到自己是責(zé)任的主要承擔(dān)者。
我們經(jīng)常會(huì)聽到有經(jīng)理頭銜的人在高談闊論:“編程我不會(huì),做個(gè)項(xiàng)目還不easy?派個(gè)人去搞系統(tǒng)分析,回頭再叫幾個(gè)程序員把需求譯成程序,不就OK了嗎?”
不懂英語(yǔ)的人準(zhǔn)以為easy和OK是貶義詞。要讓軟件項(xiàng)目失敗很容易,只要符合下列條件之一即可:
(1)項(xiàng)目經(jīng)理對(duì)軟件一無所知;
(2)技術(shù)負(fù)責(zé)人對(duì)編程不感興趣;
(3)真真編寫代碼的程序員是臨時(shí)雇用的。
如果上述三個(gè)條件同時(shí)具備,就請(qǐng)放心失敗好了。
讓我們少幻想自己是比爾·蓋茨,先當(dāng)好程序員和程序經(jīng)理再說。
3.1了解程序員
早期的程序員干活能從軟件直通硬件,個(gè)個(gè)生猛無比。又因他們的作息時(shí)間、言行舉止與常人不太一樣,久而久之就給人們留下了“神秘”、“孤僻”的印象。如今軟件行業(yè)被炒得熱火朝天,有能耐的程序員即便躲在大山岙的軍工廠里也能被挖出來。而更多原本不是程序員的人操起幾本“速成”、“二十一天通”等書籍也加入了這個(gè)行業(yè)。現(xiàn)在國(guó)內(nèi)號(hào)稱有上百萬程序員,這支大軍魚龍混雜,已搞不清那些是正規(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ā);一方面,對(duì)學(xué)生進(jìn)行適時(shí)的理論指導(dǎo)。既調(diào)動(dòng)了學(xué)生的積極性,又讓學(xué)生了解了該課程的理論內(nèi)容,收到了一舉兩得的效果。具體教學(xué)過程如下:
第一步:模擬軟件公司的開發(fā)項(xiàng)目小組,分組,分設(shè)角色(項(xiàng)目經(jīng)理、用戶、需求人員、設(shè)計(jì)人員、程序員、測(cè)試人員、軟件安裝培訓(xùn)維護(hù)人員),確定開發(fā)題。讓每個(gè)小組的學(xué)生聚在一起,在項(xiàng)目經(jīng)理的組織下通過調(diào)研、討論來制定自己小組的開發(fā)題目,大家感覺就象在軟件公司實(shí)習(xí)一樣,非常新鮮,感興趣。每個(gè)學(xué)生都積極主動(dòng)的去完成自己應(yīng)承擔(dān)的那部分工作。
第二步:模擬軟件項(xiàng)目開發(fā)全過程的各個(gè)階段,進(jìn)行相關(guān)的理論授課和實(shí)際開發(fā)。即對(duì)軟件開發(fā)的每一階段,首先按照教材內(nèi)容進(jìn)行理論授課,然后讓學(xué)生參照授課內(nèi)容進(jìn)行實(shí)際的軟件開發(fā)實(shí)踐。
在此階段結(jié)束后,每班召開一個(gè)模擬方案論證會(huì),由各開發(fā)小組選出代表上臺(tái)講解本組的開發(fā)方案,其他同學(xué)模擬用戶對(duì)開發(fā)方案提出意見。由于大家對(duì)模擬方案論證會(huì)非常感興趣,發(fā)言積極踴躍,論證會(huì)結(jié)束后,每個(gè)小組的設(shè)計(jì)方案都得到了很好的補(bǔ)充和完善。
第三步:學(xué)期末各小組提交各自完成的軟件系統(tǒng)及開發(fā)文檔,并進(jìn)行總結(jié)演示,由任課教師進(jìn)行講評(píng)。
抽象理論課的教學(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ā)。
第五篇:軟件工程
1.軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科
2.軟件危機(jī):是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題
3.軟件過程:是為了開發(fā)出高質(zhì)量的軟件產(chǎn)品所需完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟
4.軟件生命周期:是指從軟件定義、開發(fā)、使用、信息”。此外,系統(tǒng)還應(yīng)該具有“定時(shí)取樣生理信號(hào)”、“更新日志”和“產(chǎn)生病情報(bào)告”的功能。為了分析病人生理信號(hào)是否超出了醫(yī)生規(guī)定的安全范圍,應(yīng)該存儲(chǔ)“患者安全范圍”信息。此外,定時(shí)記錄病人生理信號(hào)所形成的“患者日志”,顯然也是一個(gè)數(shù)據(jù)存 儲(chǔ)。
23.軟件危機(jī)有那些典型表現(xiàn)?
(1)央一個(gè)索引號(hào))。
針對(duì)若干個(gè)不同的NAME重復(fù)執(zhí)行上述命令序列。
?測(cè)試系統(tǒng)非正常操作的測(cè)試數(shù)據(jù) ①用過長(zhǎng)的關(guān)鍵字作為命令b的參數(shù):例如,b(reliability software and hardware combined)
預(yù)期的輸出:系統(tǒng)截短過長(zhǎng)的關(guān)鍵字,例如,上列命令中的關(guān)鍵字可能性被截預(yù)期的輸出:X=1,Y=20,Z=3 ④ 3個(gè)判定表達(dá)式依次為假、真、真 輸入:A=1,B=40,C=60 預(yù)期的輸出:X=1,Y=20,Z=30 ⑤ 3個(gè)判定表達(dá)式依次為真、假、假 輸入:A=20,B=1,C=1 預(yù)期的輸出:X=10,Y=2,Z=3 ⑥ 3個(gè)判定表達(dá)式依次為真、假、真 輸入:A=20,B=1,C=60 對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。維護(hù)到淘汰的全過程
5.軟件工程環(huán)境:方法與工具的結(jié)合,加上配套的軟、硬件支持稱為軟件工程環(huán)境
6.模塊:是數(shù)據(jù)說明、可執(zhí)行語(yǔ)句等程序?qū)ο蟮募?.模塊化:是按規(guī)定的原則將一個(gè)大型軟件分為一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又相關(guān)的模塊
8.耦合:是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量
9.內(nèi)聚:標(biāo)志著一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度
10.結(jié)構(gòu)程序設(shè)計(jì):如果一個(gè)程序的代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的11.實(shí)現(xiàn):通常指編碼和測(cè)試
12.軟件可靠性:是指程序在給定的時(shí)間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功地運(yùn)行地概率
13.集成測(cè)試:是測(cè)試和組裝軟件的系統(tǒng)化技術(shù) 14.軟件維護(hù):是指軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程
15.對(duì)象:在應(yīng)用領(lǐng)域中有意義的、與所解決的問題有關(guān)系的任何事物
16.對(duì)象模型:表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)
17.功能模型:表示變化的系統(tǒng)的“功能”性質(zhì) 18.面向?qū)ο蠓治觯壕褪浅槿『驼碛脩粜枨蟛⒔栴}域精確模型的過程
19.重用:是指同一事物不作修改或者稍加改動(dòng)就多次重復(fù)使用
20.可行性分析包括:技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性
21.北京某高校可用的電話號(hào)碼有以下幾類:校內(nèi)電話號(hào)碼由 4 位數(shù)字組成??定義上述電話號(hào)碼
電話號(hào)碼=[校內(nèi)電話號(hào)碼|校外電話號(hào)碼]
校內(nèi)電話號(hào)碼=非零數(shù)字+ 3 位數(shù)字 //后面繼續(xù)定義 校外電話號(hào)碼=[本市號(hào)碼|外地號(hào)碼] 本市號(hào)碼=數(shù)字零+8 位數(shù)字
外地號(hào)碼=數(shù)字零+3 位數(shù)字+8 位數(shù)字 非零數(shù)字=[1|2|3|4|5|6|7|8|9] 數(shù)字零=0位數(shù)字=3{數(shù)字}3//3 至 3 個(gè)數(shù)字 8 位數(shù)字=非零數(shù)字+7 位數(shù)字 7 位數(shù)字=7{數(shù)字}7 數(shù)字=[0|1|2|3|4|5|6|7|8|9]
22.目前住院的病人主要由護(hù)士護(hù)理,這樣做不僅需要大量護(hù)士??寫出問題定義,分析可行性 從問題陳述可知,本系統(tǒng)數(shù)據(jù)源點(diǎn)是“病人”和“護(hù)士”,他們分別提供生理信號(hào)和要求病情報(bào)告的信息。進(jìn)一步分析問題陳述,從系統(tǒng)應(yīng)該“定時(shí)記錄病人情況以形成患者日志”這項(xiàng)要求可以想到,還應(yīng)該有一個(gè)提供日期和時(shí)間信息的“時(shí)鐘”作為數(shù)據(jù)源點(diǎn)。從問題陳述容易看出,本系統(tǒng)的數(shù)據(jù)終點(diǎn)是接收警告信息和病情報(bào)告的護(hù)士。系統(tǒng)對(duì)病人生理信號(hào)的處理功能主要是“接收信號(hào)”、“分析信號(hào)”和“產(chǎn)生警告
(2)用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常
發(fā)生。
(3)軟件產(chǎn)品的質(zhì)量往往靠不住。(4)軟件常常是不可維護(hù)的。(5)軟件通常沒有適當(dāng)?shù)奈臋n資料。(6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例
逐年上升。(7)軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算
機(jī)應(yīng)用迅速普及深入的趨勢(shì)
25.銀行計(jì)算機(jī)存儲(chǔ)系統(tǒng)的工作過程大致如下:??請(qǐng)用數(shù)據(jù)流圖描繪本系統(tǒng)的功能,并用實(shí)體—聯(lián)系圖描繪系統(tǒng)中的數(shù)據(jù)對(duì)象 26.復(fù)印機(jī)的工作過程大致如下:未接到復(fù)印命令時(shí)處于閑置狀態(tài)??請(qǐng)用狀態(tài)轉(zhuǎn)換圖描繪復(fù)印機(jī)的行為
27.用面向數(shù)據(jù)流的方法設(shè)計(jì)下列系統(tǒng)的軟件結(jié)構(gòu)
(1)機(jī)票預(yù)定系統(tǒng)(2)患者監(jiān)護(hù)系統(tǒng) 28.耦合包括數(shù)據(jù)耦合、控制耦合、公共環(huán)境耦合、內(nèi)容耦合29.內(nèi)聚包括功能內(nèi)聚、順序內(nèi)聚、通信內(nèi)聚、過程內(nèi)聚、時(shí)間內(nèi)聚、邏輯內(nèi)聚、偶然內(nèi)聚
30.美國(guó)某大學(xué)有200名教師,校方與教師工會(huì)剛剛簽訂一項(xiàng)協(xié)議。按照協(xié)議??
31.畫出下列偽代碼的流程圖,計(jì)算它的環(huán)形復(fù)雜度
?
32.某圖書館有一個(gè)使用CET
終端的信息檢索系統(tǒng),該系統(tǒng)有下列4個(gè)基本檢索命令:
(1)設(shè)計(jì)測(cè)試數(shù)據(jù)以全面系統(tǒng)的正常操作
(2)設(shè)計(jì)測(cè)試數(shù)據(jù)以測(cè)試系統(tǒng)的非正常操作
解:?測(cè)試系統(tǒng)正常操作的測(cè)試數(shù)據(jù) ①順序執(zhí)行下列3個(gè)命令:b(KEYWORD)s(L)d(N)
其中KEYWORD是正確的關(guān)鍵字;L是執(zhí)行命令b后在屏幕上顯示的約20個(gè)行號(hào)中的一個(gè)(至少應(yīng)該使L分別為第一個(gè)、最后一個(gè)和中央一個(gè)行號(hào));N是執(zhí)行命令s后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使N分別為第一個(gè)、最后一個(gè)和中央一個(gè)索引號(hào))。
針對(duì)若干個(gè)不同的KEYWORD重復(fù)執(zhí)行上述命令序列。
②順序執(zhí)行下列2個(gè)命令:f(NAME)d(N)
其中,NAME是已知的作者姓名;N是執(zhí)行命令f后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使N分別為第一個(gè)、最后一個(gè)和中
短為reliability software
②用不正確的關(guān)鍵字作為命令b的參數(shù):例如,b(AARDVARK)
預(yù)期的輸出:顯示出最接近的匹配結(jié)果,例如,執(zhí)行上列命令后可能顯示 1.AARON,JULES(book)③用比執(zhí)行命令b后列出的最大行號(hào)大1的數(shù)作為命令s的參數(shù)
預(yù)期的輸出:“命令s的參數(shù)不在行號(hào)列表中”
④用數(shù)字和標(biāo)點(diǎn)符號(hào)作為命令b和命令f的參數(shù)
預(yù)期的輸出:“參數(shù)類型錯(cuò)”
⑤用字母字符作為命令s和命令d的參數(shù) 預(yù)期的輸出:“參數(shù)類型錯(cuò)”
⑥用0和負(fù)數(shù)作為命令s和命令d的參數(shù) 預(yù)期的輸出:“參數(shù)數(shù)值錯(cuò)” ⑦命令順序錯(cuò):例如,沒執(zhí)行命令b就執(zhí)行命令s,或沒執(zhí)行命令s就執(zhí)行命令d 預(yù)期的輸出:“命令順序錯(cuò)”
⑧命令語(yǔ)法錯(cuò):例如,遺漏命令名b、s、d或f;或命令參數(shù)沒用圓括號(hào)括起來 預(yù)期的輸出:“命令語(yǔ)法錯(cuò)” ⑨命令參數(shù)空:例如,b()、s()、d或f()
預(yù)期的輸出:系統(tǒng)提供默認(rèn)參數(shù)或給出出錯(cuò)信息
⑩使用拼錯(cuò)了的作者姓名作為f的參數(shù) 預(yù)期的輸出:“找不到這們作者的著作”
33.(2)答:經(jīng)驗(yàn)表明,在類似的程序中,單位長(zhǎng)度
里的錯(cuò)誤數(shù)ET/IT近似為常數(shù)。美國(guó)的一些統(tǒng)計(jì)數(shù)字告訴我們,通常
0.5X10-2≤ ET/IT ≤2X10-2
也就是說,在測(cè)試之前每1000條指令中大約有5~20個(gè)錯(cuò)誤。
假設(shè)在該程序的每1000條指令中有10個(gè)錯(cuò)誤,則估計(jì)在對(duì)它進(jìn)行測(cè)試期間將發(fā)現(xiàn)的錯(cuò)誤數(shù)為
5000X10/1000=50(個(gè))(3)① 使3個(gè)判定表達(dá)式之值全為假 輸入:A=1,B=1,C=1 預(yù)期的輸出:X=1,Y=2,Z=3 ② 使3個(gè)判定表達(dá)式之值全為真 輸入:A=20,B=40,C=60 預(yù)期的輸出:X=10,Y=20,Z=30 ① 3個(gè)判定表達(dá)式之值全為假 輸入:A=1,B=1,C=1 預(yù)期的輸出:X=1,Y=2,Z=3 ② 3個(gè)判定表達(dá)式依次為假、假、真 輸入:A=1,B=1,C=60 預(yù)期的輸出:X=1,Y=2,Z=30 ③ 3個(gè)判定表達(dá)式依次為假、真、假 輸入:A=1,B=40,C=1
預(yù)期的輸出:X=10,Y=2,Z=30 ⑦ 3個(gè)判定表達(dá)式依次為真、真、假 輸入:A=20,B=40,C=1 預(yù)期的輸出:X=10,Y=20,Z=3 ⑧ 3個(gè)判定表達(dá)式全為真 輸入:A=20,B=40,C=60 預(yù)期的輸出:X=10,Y=20,Z=30 34.軟件的可維護(hù)性與哪些因素有關(guān):軟件的可理解性、可測(cè)試性、可修改性、文檔描述符合要求、用戶文檔簡(jiǎn)潔明確、系統(tǒng)文檔完整并且標(biāo)準(zhǔn)
35.面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、繼承、封裝、聚合、消息、多態(tài)等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。
面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)是:符合人們習(xí)慣的思維方式、穩(wěn)定性好、可重用性好、可維護(hù)性好、容易開發(fā)大型的軟件產(chǎn)品