版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1
軟件工程
SoftwareEngineering
1.1軟體的分類(1)系統(tǒng)軟體:系統(tǒng)軟體是一組為其他程式服務(wù)的程式。一些系統(tǒng)軟體(如編譯器、編輯器和文件管理程式)處理複雜的但也是確定的資訊結(jié)構(gòu)。其他的系統(tǒng)應(yīng)用(如操作系統(tǒng)、驅(qū)動(dòng)程式和通訊進(jìn)程等)則處理大量的非確定的數(shù)據(jù)。不管哪種情況,系統(tǒng)軟體均具有以下特點(diǎn):與電腦硬體頻繁交互;多用戶支持;需要精細(xì)調(diào)度、資源共用及靈活的進(jìn)程管理的併發(fā)操作;複雜的數(shù)據(jù)結(jié)構(gòu);及多外部介面。21.1軟體的分類(2)應(yīng)用軟體:應(yīng)用軟體是一些可以滿足特定業(yè)務(wù)需要的獨(dú)立應(yīng)用程式。應(yīng)用軟體處理商務(wù)或者技術(shù)數(shù)據(jù),以協(xié)助業(yè)務(wù)操作和管理或技術(shù)決策。除了傳統(tǒng)數(shù)據(jù)處理的應(yīng)用程式,應(yīng)用軟體業(yè)被用於業(yè)務(wù)領(lǐng)域的即時(shí)控制(如:銷售點(diǎn)的交易處理,即時(shí)製造過(guò)程控制)31.1軟體的分類(3)工程和科學(xué)計(jì)算軟體:工程和科學(xué)計(jì)算軟體的特徵是“數(shù)值分析”演算法。此類應(yīng)用含蓋面很廣,從天文學(xué)到火山學(xué);從汽車壓力分析到太空梭的軌道動(dòng)力學(xué);從分子生物學(xué)到自動(dòng)化製造。不過(guò),目前工程和科學(xué)計(jì)算軟體已不僅限於傳統(tǒng)的數(shù)值演算法。電腦輔助設(shè)計(jì)、系統(tǒng)仿真和其他交互應(yīng)用已經(jīng)開始具有即時(shí)軟體和系統(tǒng)軟體的特徵。41.1軟體的分類(4)嵌入式軟體:智能產(chǎn)品在幾乎每一個(gè)消費(fèi)或工業(yè)市場(chǎng)上都是必不可少的,嵌入式軟體駐留在只讀記憶體中,用於控制這些智能產(chǎn)品。嵌入式軟體能夠執(zhí)行很有限但專職的功能(如微波爐的按鈕控制),或是提供比較強(qiáng)大的功能及控制能力(如汽車中的數(shù)字控制,包括燃料控制、儀錶板顯示,剎車系統(tǒng)等)。51.1軟體的分類(5)產(chǎn)品線軟體:產(chǎn)品的設(shè)計(jì)方向?yàn)槎鄠€(gè)不同用戶的使用提供特定功能,關(guān)注有限的特定市場(chǎng)(例如庫(kù)存管理系統(tǒng))或大眾消費(fèi)品市場(chǎng)。(文字處理、電子錶格、電腦圖形、多媒體、娛樂(lè)、資料庫(kù)管理、個(gè)人及商業(yè)金融應(yīng)用等)。61.1軟體的分類(6)Web應(yīng)用軟體:“web應(yīng)用”涵蓋廣泛的應(yīng)用程式產(chǎn)品,如電子商務(wù)和B2B應(yīng)用,各類網(wǎng)路應(yīng)用,如BBS,blog等。71.1軟體的分類(7)人工智慧軟體:人工智慧(AI)軟體利用非數(shù)值演算法去解決複雜的問(wèn)題,這些問(wèn)題不能通過(guò)計(jì)算或直接分析得到答案。一個(gè)活躍的AI領(lǐng)域是專家系統(tǒng),也稱為基於知識(shí)的系統(tǒng)。AI軟體的其他應(yīng)用領(lǐng)域還包括模式識(shí)別(圖象或聲音)、定理證明和遊戲。最近,AI軟體的一個(gè)新分支,稱為人工神經(jīng)網(wǎng)路,得到了很大進(jìn)展。神經(jīng)網(wǎng)路仿真人腦的處理結(jié)構(gòu)(生物神經(jīng)系統(tǒng)的功能),這有可能導(dǎo)致一個(gè)全新類型的軟體登場(chǎng),它不僅能夠識(shí)別複雜的模式,而且還能從過(guò)去的經(jīng)驗(yàn)中自行學(xué)習(xí)進(jìn)步。81.2軟體的定義、發(fā)展和危機(jī)1.2.1軟體的定義軟體==程式+數(shù)據(jù)+文檔。數(shù)據(jù)==初始化數(shù)據(jù)+測(cè)試數(shù)據(jù)文檔==開發(fā)文檔+管理文檔。今天仍然有人認(rèn)為:軟體等於程式。這些人一上來(lái)就寫程式。RogerS.Pressman說(shuō):“越早開始寫代碼的人,就是越遲完成代碼的人”。
91.2.1軟體的定義軟體的最新定義:軟體==知識(shí)+程式+數(shù)據(jù)+文檔對(duì)這一定義的討論:正方:因?yàn)檐涹w是知識(shí)在網(wǎng)路上的體現(xiàn),所以這個(gè)定義非常好。反方:程式、數(shù)據(jù)、文檔本身就是知識(shí)的表現(xiàn),所以這個(gè)定義是畫蛇添足。10軟體文檔具有嚴(yán)格的層次關(guān)係(1)“目標(biāo)程式”覆蓋“根源程式”;(2)“根源程式”覆蓋“詳細(xì)設(shè)計(jì)說(shuō)明書”;(3)“詳細(xì)設(shè)計(jì)說(shuō)明書”覆蓋“概要設(shè)計(jì)說(shuō)明書”;(4)“概要設(shè)計(jì)說(shuō)明書”覆蓋“需求規(guī)格說(shuō)明書”;11(5)“需求規(guī)格說(shuō)明書”覆蓋“用戶需求報(bào)告”;(6)“用戶需求報(bào)告”覆蓋“軟體合同”。管理文檔具有嚴(yán)格的時(shí)序關(guān)係:因?yàn)楣芾硎且粋€(gè)過(guò)程。12程式的定義(1).面向過(guò)程的程式==演算法+數(shù)據(jù)結(jié)構(gòu)。(2).面向?qū)ο蟮某淌?=對(duì)象+消息。(3).面向數(shù)據(jù)的程式==資料庫(kù)表+在表上的操作(如存貯過(guò)程、觸發(fā)器或視圖)。(4).面向構(gòu)件的程式==構(gòu)件+構(gòu)架。13優(yōu)秀的程式(或模組),必須滿足“高內(nèi)聚、低耦合”的性質(zhì)。所謂高內(nèi)聚,就是程式(或模組)內(nèi)部結(jié)構(gòu)緊湊,凝聚力和向心力強(qiáng)。所謂低耦合,就是程式(或模組)之間彼此依賴關(guān)係很低。有人說(shuō):“人生就是一段程式,這段程式是用特殊代碼寫成的,只是演算法極其複雜而已?!?42024-2-7廣東工業(yè)大學(xué)電腦學(xué)院15軟體開發(fā)的發(fā)展過(guò)程電腦應(yīng)用發(fā)展軟體數(shù)量多規(guī)模大軟體成本高質(zhì)量低個(gè)體化軟體開發(fā)方法軟體維護(hù)困難軟體危機(jī)軟體工程2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院161.2.2軟體的發(fā)展和危機(jī)自第一臺(tái)電腦誕生以來(lái),軟體的生產(chǎn)就開始了。隨著電腦技術(shù)的飛快發(fā)展和應(yīng)用領(lǐng)域迅速拓寬,自20世紀(jì)60年代中期以後,軟體需求迅速增長(zhǎng),軟體數(shù)量急劇膨脹。這種增長(zhǎng)導(dǎo)致了軟體的發(fā)展,可以將軟體生產(chǎn)的發(fā)展劃分為三個(gè)時(shí)代。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院171.程式設(shè)計(jì)時(shí)代(1946~1956年)在這一時(shí)期,軟體的生產(chǎn)主要是個(gè)體手工勞動(dòng)的生產(chǎn)方式。程式設(shè)計(jì)者使用機(jī)器語(yǔ)言、組合語(yǔ)言作為工具;開發(fā)程式的方法上主要是追求編程技巧和程式運(yùn)行效率。在程式設(shè)計(jì)中還沒有注意其他輔助作用,因此所設(shè)計(jì)的程式難讀、難懂、難修改。這個(gè)時(shí)期軟體特徵是只有程式、程式設(shè)計(jì)概念,不重視程式設(shè)計(jì)方法。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院182.程式系統(tǒng)時(shí)代(1956~1968年)由於電腦的應(yīng)用領(lǐng)域不斷擴(kuò)大,軟體的需求也不斷增長(zhǎng),軟體由於處理的問(wèn)題域擴(kuò)大而使程式變得複雜,設(shè)計(jì)者不得不由個(gè)體手工勞動(dòng)組成小集團(tuán)合作,形成作坊式生產(chǎn)方式小集團(tuán)合作生產(chǎn)的程式系統(tǒng)時(shí)代。生產(chǎn)工具是高級(jí)語(yǔ)言。開發(fā)方法仍舊靠個(gè)人技巧。開發(fā)方法仍舊靠個(gè)人技巧。由於大的程式需要合作,在程式設(shè)計(jì)中開始提出結(jié)構(gòu)化方法。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院193.軟體工程時(shí)代(1968年至今)1968年在聯(lián)邦德國(guó)召開的國(guó)際會(huì)議上討論軟體危機(jī)的問(wèn)題,在這次會(huì)議上正式提出並使用了“軟體工程”術(shù)語(yǔ),新的工程科學(xué)就此誕生。軟體工程時(shí)代的生產(chǎn)方式是採(cǎi)用工程的概念原理技術(shù)和方法。使用資料庫(kù)、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)路、分佈式、面向?qū)ο蠹夹g(shù)來(lái)開發(fā)軟體。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院201.2.3軟體危機(jī)所謂軟體危機(jī)是指在電腦軟體的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。這種“嚴(yán)重問(wèn)題”不僅僅是“不能正常運(yùn)行”。實(shí)際上幾乎所有的軟體都不同程度地存在問(wèn)題。軟體危機(jī)主要是指如何開發(fā)軟體,怎樣滿足對(duì)軟體日益增長(zhǎng)的需求,如何維護(hù)數(shù)量不斷膨脹的現(xiàn)有軟體。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院211.軟體危機(jī)的表現(xiàn)(1)對(duì)於軟體開發(fā)的成本和進(jìn)度的估計(jì)很不準(zhǔn)確。由於缺乏軟體開發(fā)的經(jīng)驗(yàn)和軟體開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計(jì)畫很難制定。主觀盲目制定的計(jì)畫,執(zhí)行起來(lái)和實(shí)際情況有很大差距,使得開發(fā)經(jīng)費(fèi)一再突破。由於對(duì)工作量和開發(fā)難度估計(jì)不足,進(jìn)度計(jì)畫無(wú)法按時(shí)完成,開發(fā)時(shí)間一再拖延。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院22(2)開發(fā)的軟體產(chǎn)品不能完全滿足用戶要求,用戶對(duì)已完成的軟體系統(tǒng)不滿意的現(xiàn)象常常發(fā)生。一般情況下軟體開發(fā)人員在開發(fā)初期對(duì)用戶的要求瞭解不夠明確,未能得到明確表達(dá),就開始著手編程。開發(fā)工作開始後,軟體人員和用戶又未能及時(shí)交換意見,使得一些問(wèn)題不能及時(shí)解決,導(dǎo)致開發(fā)的軟體產(chǎn)品不能完全滿足用戶要求。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院23(3)開發(fā)的軟體可靠性差。由於在開發(fā)過(guò)程中,沒有確保軟體品質(zhì)的體系和措施,在軟體測(cè)試時(shí),又沒有嚴(yán)格的、充分的、完全的測(cè)試,提交給用戶的軟體品質(zhì)差,在運(yùn)行中暴露出大量的問(wèn)題。這種不可靠的軟體,輕則會(huì)影響系統(tǒng)正常工作,重則會(huì)發(fā)生事故,造成生命財(cái)產(chǎn)的重大損失。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院24(4)軟體通常沒有適當(dāng)?shù)奈臋n。開發(fā)過(guò)程無(wú)完整、規(guī)範(fàn)的文檔,發(fā)現(xiàn)問(wèn)題後進(jìn)行雜亂無(wú)章的修改。程式結(jié)構(gòu)不好,運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤也很難修改,導(dǎo)致可維護(hù)性差。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院25(5)軟體的可維護(hù)性差。由於開發(fā)過(guò)程沒有統(tǒng)一的、公認(rèn)的規(guī)範(fàn),軟體開發(fā)人員按各自的風(fēng)格工作,各行其是。很多程式中的錯(cuò)誤非常難改,實(shí)際上不可能使這些程式適應(yīng)新的硬體環(huán)境,也不可能根據(jù)用戶要求在程式中增加新功能。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院26(6)軟體開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上電腦應(yīng)用普及深入的趨勢(shì)。軟體產(chǎn)品“供不應(yīng)求”的現(xiàn)象使人類不能充分利用電腦硬體資源提供的巨大潛力。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院272.軟體危機(jī)的產(chǎn)生軟體發(fā)展第二階段的末期,由於電腦硬體技術(shù)的進(jìn)步,電腦運(yùn)行速度、容量和可靠性有顯著的提高,生產(chǎn)成本有顯著下降,為電腦的廣泛應(yīng)用創(chuàng)造了條件。一些複雜的、大型的軟體開發(fā)專案提了出來(lái)。但是,軟體開發(fā)技術(shù)一直未能滿足發(fā)展的要求。軟體開發(fā)中遇到的問(wèn)題因找不到解決的辦法,使問(wèn)題積累起來(lái),形成了尖銳的矛盾,導(dǎo)致了軟體危機(jī)。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院283.軟體危機(jī)的原因 在軟體的開發(fā)和維護(hù)過(guò)程中存在著這麼多的問(wèn)題,一方面與軟體本身的特點(diǎn)有關(guān),另一方面也與軟體的開發(fā)和維護(hù)的方法有關(guān)。造成上述軟體危機(jī)的原因概括起來(lái)有以下幾方面:2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院29(1)軟體的規(guī)模愈發(fā)龐大。隨著電腦應(yīng)用的日益廣泛,需要開發(fā)的軟體規(guī)模日益龐大,軟體結(jié)構(gòu)也日益複雜。有人曾估計(jì),軟體設(shè)計(jì)與硬體設(shè)計(jì)相比,其邏輯量要多達(dá)10~100倍。對(duì)於這種龐大規(guī)模的軟體,其調(diào)用關(guān)係、介面資訊複雜,數(shù)據(jù)結(jié)構(gòu)也複雜,這種複雜程度超過(guò)了人所能接受的程度。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院30(2)軟體開發(fā)的管理困難。軟體不同於硬體,它是電腦系統(tǒng)中的邏輯部件。在寫出代碼並在電腦上試運(yùn)行前,由於軟體規(guī)模大,結(jié)構(gòu)複雜,又具有無(wú)形性,軟體開發(fā)過(guò)程的進(jìn)展情況較難度量,品質(zhì)也難評(píng)價(jià)。因此導(dǎo)致管理困難,進(jìn)度控制困難,品質(zhì)控制困難,可靠性無(wú)法保證。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院31(3)軟體本身的獨(dú)有特點(diǎn)確實(shí)給開發(fā)和維護(hù)造成一些客觀困難,但是人們?cè)陂L(zhǎng)期的實(shí)踐中也積累了不少成功的經(jīng)驗(yàn)。如果堅(jiān)持使用成功的經(jīng)驗(yàn)和正確的方法,許多困難是可以克服的。但是相當(dāng)多的軟體開發(fā)人員對(duì)於軟體的開發(fā)和維護(hù)存在不少糊塗的觀念,實(shí)踐中或多或少地採(cǎi)用錯(cuò)誤的方法和技術(shù)。這可能是軟體危機(jī)的主要原因。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院32(4)軟體開發(fā)和維護(hù)中許多錯(cuò)誤認(rèn)識(shí)和方法的形成可以歸結(jié)與電腦發(fā)展早期軟體開發(fā)的個(gè)體化特點(diǎn)。其主要表現(xiàn)在對(duì)軟體需求分析的重要性認(rèn)識(shí)不夠,錯(cuò)誤地認(rèn)為軟體開發(fā)就是寫程式並使之運(yùn)行,不重視軟體需求分析與維護(hù)等工作。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院33(5)軟體開發(fā)技術(shù)落後。在20世紀(jì)60年代,人們注重一些電腦理論問(wèn)題的研究,如編譯原理、操作系統(tǒng)原理、資料庫(kù)原理、人工智慧原理、形式語(yǔ)言理論等,不注重軟體開發(fā)技術(shù)的研究,用戶要求的軟體複雜性與軟體技術(shù)解決複雜性的能力不相適應(yīng),它們之間的差距越來(lái)越大。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院34(6)生產(chǎn)方式落後。軟體仍然採(cǎi)用個(gè)體手工方式開發(fā),根據(jù)個(gè)人習(xí)慣愛好工作,無(wú)章可循,無(wú)規(guī)範(fàn)可依據(jù),靠言傳身教方式工作。2024-2-7廣東工業(yè)大學(xué)電腦學(xué)院35(7)開發(fā)工具落後,生產(chǎn)率提高緩慢。軟體開發(fā)工具過(guò)於原始,沒有出現(xiàn)高效率的開發(fā)工具,因而軟體生產(chǎn)率低下。在1960~1980年期間,電腦硬體的生產(chǎn)由於採(cǎi)用電腦輔助設(shè)計(jì)、自動(dòng)生產(chǎn)線等先進(jìn)工具,使硬體生產(chǎn)率提高了100萬(wàn)倍,而軟體生產(chǎn)率只提高了2倍,相差十分懸殊。1.3軟體工程--定義IEEE[IEE93]的綜合定義(1)將系統(tǒng)化的、規(guī)範(fàn)的、可度量的方法應(yīng)用於軟體的開發(fā)、運(yùn)行和維護(hù)的過(guò)程,即將工程化應(yīng)用於軟體中(2)軟體工程的性質(zhì)軟體工程要用工程科學(xué)中的觀點(diǎn)來(lái)進(jìn)行費(fèi)用估算、制定進(jìn)度、制定計(jì)畫和方案;要用管理科學(xué)中的方法和原理進(jìn)行軟體生產(chǎn)的管理;要用數(shù)學(xué)的方法建立軟體開發(fā)中各種模型和各種演算法,如可靠性模型,說(shuō)明用戶需求的形式化模型等。
361.3軟體工程—學(xué)科、層次品質(zhì)關(guān)注點(diǎn)過(guò)程方法工具37程式設(shè)計(jì)方法學(xué)和軟體工程方法學(xué)是為了解決軟體危機(jī)問(wèn)題而逐漸形成的學(xué)科?!败涹w工程”(SoftwareEngineering)作為一個(gè)術(shù)語(yǔ),是在1968年北大西洋公約組織的一次電腦學(xué)術(shù)會(huì)議上,正式提出來(lái)的。這個(gè)會(huì)議專門討論了軟體危機(jī)問(wèn)題。這次會(huì)議是軟體發(fā)展史上一個(gè)重要的里程碑1.3軟體工程—過(guò)程模型(1)溝通--與客戶以及與團(tuán)隊(duì)成員的溝通(2)策劃--任務(wù)、需求、風(fēng)險(xiǎn)、計(jì)畫、產(chǎn)品規(guī)格(3)建模--軟體建模和設(shè)計(jì)(4)構(gòu)建--編碼和測(cè)試(5)部署--軟體交付和意見回饋381.4軟體工程研究的內(nèi)容(1).軟體開發(fā)模型,如:瀑布模型、增量模型、原型模型、螺旋模型、迭代模型等。(2).軟體開發(fā)方法,如:面向過(guò)程的方法、面向數(shù)據(jù)的方法、面向?qū)ο蟮姆椒?包括面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法、面向工作流方法、面向主體的方法、面向方面的方法、面向代理的方法等等),以及形式化方法。39(3).軟體支持過(guò)程,如:CASE工具Rose、北大青鳥系統(tǒng)、PowerDesigner、ERWin,以及配置管理工具等。(4).軟體管理過(guò)程,如:ISO9000、CMM/CMMI、軟體企業(yè)文化(微軟企業(yè)檔、敏捷文化現(xiàn)象、IBM企業(yè)文化)。40
【例】請(qǐng)開發(fā)一個(gè)“圖書館資訊系統(tǒng)”,即圖書館MIS。這是一項(xiàng)軟體工程,為了完成這項(xiàng)任務(wù),讀者首先要選擇軟體開發(fā)模型,確定開發(fā)方法,準(zhǔn)備開發(fā)工具,設(shè)計(jì)開發(fā)環(huán)境和運(yùn)行環(huán)境,然後進(jìn)行需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測(cè)試、試運(yùn)行、正式運(yùn)行、驗(yàn)收和交付,最後是系統(tǒng)維護(hù)或系統(tǒng)升級(jí)換代。這一系列的軟體開發(fā)過(guò)程和管理過(guò)程,就是軟體工程。411.5軟體工程的基本原理(1).用分階段的生命週期計(jì)畫,嚴(yán)格管理軟體開發(fā)。這一條是吸取前人的教訓(xùn)而提出來(lái)的。統(tǒng)計(jì)表明,50%以上的失敗專案是由於計(jì)畫不周而造成的。在軟體開發(fā)與維護(hù)的漫長(zhǎng)生命週期中,需要完成許多性質(zhì)各異的工作。這條原理意味著,應(yīng)該把軟體生命週期分成若干階段,並相應(yīng)制定出切實(shí)可行的計(jì)畫,然後嚴(yán)格按照計(jì)畫對(duì)軟體的開發(fā)和維護(hù)進(jìn)行管理。421.5軟體工程的基本原理(2).堅(jiān)持進(jìn)行階段評(píng)審。統(tǒng)計(jì)結(jié)果顯示:大部分錯(cuò)誤是在編碼之前造成的,大約占63%;錯(cuò)誤發(fā)現(xiàn)得越晚,改正它要付出的代價(jià)就越大,要差2到3個(gè)數(shù)量級(jí)。因此,軟體的品質(zhì)保證工作不能等到編碼結(jié)束之後再進(jìn)行,應(yīng)堅(jiān)持進(jìn)行嚴(yán)格的階段評(píng)審,以便儘早發(fā)現(xiàn)錯(cuò)誤。431.5軟體工程的基本原理(3).實(shí)行嚴(yán)格的產(chǎn)品版本控制。在軟體開發(fā)的過(guò)程中不應(yīng)隨意改變需求,因?yàn)楦淖円豁?xiàng)需求需要付出較高的代價(jià)。但是實(shí)踐告訴我們,需求的改動(dòng)往往是不可避免的。由於各種客觀的需要,不能禁止用戶提出改變需求的要求,而只能依靠科學(xué)的產(chǎn)品控制技術(shù)來(lái)適應(yīng)這種要求。也就是要採(cǎi)用變動(dòng)控制,又叫基準(zhǔn)配置管理。當(dāng)需求變動(dòng)時(shí),其他各個(gè)階段的文檔或代碼隨之相應(yīng)變動(dòng),以保證軟體的一致性。441.5軟體工程的基本原理(4).採(cǎi)用現(xiàn)代程式設(shè)計(jì)技術(shù)。從提出軟體工程的概念開始,人們主要的精力都用於研究各種新的程式設(shè)計(jì)技術(shù),20世紀(jì)60年代的結(jié)構(gòu)化軟體開發(fā)技術(shù),隨後又發(fā)展的結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計(jì)技術(shù),已成為大多數(shù)人認(rèn)為的先進(jìn)程式設(shè)計(jì)技術(shù)。後來(lái)又提出的面向?qū)ο蠹夹g(shù),從第一、第二代語(yǔ)言,到第四代語(yǔ)言,人們已經(jīng)充分認(rèn)識(shí)到:方法大於氣力。採(cǎi)用先進(jìn)的技術(shù)即可以提高軟體開發(fā)的效率,又可以減少軟體維護(hù)的成本。45(5).結(jié)果應(yīng)能清楚地審查。文檔要有嚴(yán)格要求。軟體產(chǎn)品不同於一般的物理產(chǎn)品,軟體是一種看不見、摸不著的邏輯產(chǎn)品。軟體開發(fā)小組的工作進(jìn)展情況可見性差,難於評(píng)價(jià)和管理。為更好地進(jìn)行管理,應(yīng)根據(jù)軟體開發(fā)的總目標(biāo)及完成期限,儘量明確地規(guī)定開發(fā)小組的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使所得到的標(biāo)準(zhǔn)能清楚地審查。46
(6).開發(fā)小組的成員要少而精。開發(fā)人員的素質(zhì)和數(shù)量是影響軟體品質(zhì)和開發(fā)效率的重要因素,應(yīng)該少而精。這一條基於兩點(diǎn)原因:高素質(zhì)開發(fā)人員的效率比低素質(zhì)開發(fā)人員的效率要高幾倍到幾十倍,開發(fā)工作中犯的錯(cuò)誤也要少得多。當(dāng)開發(fā)小組為N人時(shí),可能的通訊通道為N(N-1)/2,可見隨著人數(shù)N的增大,通訊開銷將急劇增大。
47(7).要不斷地改進(jìn)軟體工程實(shí)踐的經(jīng)驗(yàn)和技術(shù)。遵從上述前六條基本原理,就能夠較好地實(shí)現(xiàn)軟體的工程化生產(chǎn)。但是,它們只是對(duì)現(xiàn)有經(jīng)驗(yàn)的總結(jié)和歸納,並不能保證趕上技術(shù)不斷前進(jìn)發(fā)展的步伐
(8).二八定律,這條原理特別重要,專案經(jīng)理與高層經(jīng)理,要特別牢記。在給定成本、進(jìn)度的前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性並滿足用戶需求的軟體產(chǎn)品。481.6軟體工程的作用(1)【例】20世紀(jì)90年代初,有兩個(gè)軟體團(tuán)隊(duì),一個(gè)較大(10多人),一個(gè)較?。?人),都在開發(fā)財(cái)務(wù)系統(tǒng)。較大的那個(gè)團(tuán)隊(duì),工作不規(guī)範(fàn),沒有文檔,沒有評(píng)審,沒有團(tuán)隊(duì)精神,結(jié)果開發(fā)出來(lái)的產(chǎn)品可維護(hù)性差,沒有打開市場(chǎng),致使產(chǎn)品與團(tuán)隊(duì)最後同歸於盡。49
較小的那個(gè)團(tuán)隊(duì),分工明確:一人負(fù)責(zé)原始憑證和輸出報(bào)表的收集、歸類和整理,這實(shí)際上是做需求分;一人負(fù)責(zé)科目和數(shù)據(jù)字典(代碼),這實(shí)際上是做資訊的標(biāo)準(zhǔn)化與規(guī)範(fàn)化;一人負(fù)責(zé)記賬憑證的錄入和修改,這實(shí)際上是做資料庫(kù)的設(shè)計(jì)和加載工;50
一人負(fù)責(zé)日記賬、明細(xì)賬和總賬之間的平衡與對(duì)賬,這實(shí)際上是做數(shù)據(jù)處理;一人負(fù)責(zé)統(tǒng)計(jì)、報(bào)表和查詢,這實(shí)際上是做數(shù)據(jù)輸出工作;一人負(fù)責(zé)總體設(shè)計(jì)和專案管理,這就是專案經(jīng)理的工作。他們最後發(fā)展成為一個(gè)大型IT企業(yè)。511.6軟體工程的作用(2)
從軟體專案團(tuán)隊(duì)來(lái)講,解決在規(guī)定的時(shí)間內(nèi),按照規(guī)定的成本,完成預(yù)期品質(zhì)目標(biāo)(軟體的功能、性能和介面達(dá)到需求報(bào)告標(biāo)準(zhǔn))的軟體。從軟體企業(yè)本身來(lái)講,解決持續(xù)地規(guī)範(fàn)軟體開發(fā)過(guò)程和軟體管理過(guò)程,不斷地優(yōu)化軟體組織的個(gè)人素質(zhì)和集體素質(zhì),從而逐漸增強(qiáng)軟體企業(yè)的市場(chǎng)競(jìng)爭(zhēng)實(shí)力。52
從軟體發(fā)展進(jìn)程來(lái)講,克服軟體危機(jī),控制軟體進(jìn)度,節(jié)約開發(fā)成本,提高軟體品質(zhì)。從院校來(lái)講,以前它只是作為一門課或一本書?,F(xiàn)在它成為一個(gè)學(xué)科,一個(gè)體系,一個(gè)電腦學(xué)位,即軟體工程碩士學(xué)位和軟體工程博士學(xué)位。53軟體工程作用的具體表現(xiàn)
在選擇開發(fā)工具上,軟體工程的基本觀點(diǎn)是:工具不是越新越好,而是你越熟悉越好;在風(fēng)險(xiǎn)評(píng)估上,軟體工程的基本觀點(diǎn)是:任何專案組都存在技術(shù)風(fēng)險(xiǎn)和技能風(fēng)險(xiǎn);在專案策劃上,軟體工程的基本觀點(diǎn)是:需求分析在前,專案策劃在後;54
在開發(fā)進(jìn)度上,軟體工程的觀點(diǎn)是:寧願(yuàn)慢些,也要保證軟體的品質(zhì);在開發(fā)品質(zhì)上,軟體工程的觀點(diǎn)是:品質(zhì)蘊(yùn)涵於開發(fā)過(guò)程之中,而不是過(guò)程之後;在開發(fā)人員上,軟體工程的觀點(diǎn)是:專案組在中途靠增加開發(fā)人員來(lái)提高開發(fā)速度是無(wú)效的;在專案經(jīng)理的職責(zé)上,軟體工程的觀點(diǎn)是:80%的時(shí)間是寫文檔,20%的時(shí)間是內(nèi)部勾通.551.7軟體的開發(fā)方法
1.7.1三種開發(fā)方法
到目前為止,共有4種軟體開發(fā)方法:(1).面向過(guò)程的方法
(2).面向數(shù)據(jù)的方法
(3).面向?qū)ο蟮姆椒?包括面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法、面向工作流方法、面向方面的方法、面向服務(wù)的方法)。
(4).此外還有形式化方法。56開發(fā)方法來(lái)自於程式設(shè)計(jì)語(yǔ)言(1).面向過(guò)程的程式==演算法+數(shù)據(jù)結(jié)構(gòu)。
(由順序、分支、迴圈三種結(jié)構(gòu)組成)
由它產(chǎn)生了面向過(guò)程的方法。(2).面向數(shù)據(jù)的程式==表+表上的操作。由它產(chǎn)生了面向數(shù)據(jù)的方法。(3).面向?qū)ο蟮某淌?=對(duì)象+消息。由它產(chǎn)生了面向?qū)ο蟮姆椒ā?71.7.2面向過(guò)程的方法
內(nèi)容:面向過(guò)程需求分析、面向過(guò)程設(shè)計(jì)、面向過(guò)程編程、面向過(guò)程測(cè)試、面向過(guò)程維護(hù)、面向過(guò)程管理。面向過(guò)程的方法,又稱為面向功能的方法,或稱為結(jié)構(gòu)化方法。58面向過(guò)程的方法
特點(diǎn):程式的執(zhí)行過(guò)程,不由用戶控制,完全由程式員控制。優(yōu)點(diǎn):簡(jiǎn)單實(shí)用。缺點(diǎn):企圖用有窮的方法(枚舉法)來(lái)描述無(wú)窮的(隨機(jī)的)資訊世界,所以不能完全描述資訊世界;維護(hù)困難。59
【例】面向過(guò)程的方法,在軍事上的即時(shí)跟蹤監(jiān)控系統(tǒng)中有很好的應(yīng)用。如我方偵察衛(wèi)星發(fā)射後其飛行軌跡的捕獲、測(cè)量、跟蹤和預(yù)報(bào),導(dǎo)彈防禦系統(tǒng)中敵方導(dǎo)彈發(fā)射後飛行軌跡的捕獲、測(cè)量、跟蹤和預(yù)報(bào),其軟體系統(tǒng)都是採(cǎi)用面向過(guò)程的方法設(shè)計(jì)和實(shí)現(xiàn)的。使用面向過(guò)程的方法,系統(tǒng)的執(zhí)行路徑可由系統(tǒng)自動(dòng)控制,也就是程式自動(dòng)控制,這是一切自動(dòng)控制與跟蹤系統(tǒng)所必須的。601.7.2面向?qū)ο蟮姆椒?/p>
內(nèi)容:面向?qū)ο笮枨蠓治觥⒚嫦驅(qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊獭⒚嫦驅(qū)ο鬁y(cè)試、面向?qū)ο缶S護(hù)、面向?qū)ο蠊芾?。在分析、設(shè)計(jì)、實(shí)現(xiàn)中用到“對(duì)象、類、繼承、消息通信”這四個(gè)基本概,就是面向?qū)ο蟮姆椒?。今天用UML來(lái)開發(fā)軟體,就是面向?qū)ο蟮姆椒ā?/p>
61面向?qū)ο蟮姆椒?/p>
特點(diǎn):
(1).程式的執(zhí)行過(guò)程,不由程式員控制,完全由用戶控制。
(2).分析設(shè)計(jì)時(shí)面向類,編程時(shí)面向?qū)ο蟆?/p>
優(yōu)點(diǎn):用無(wú)窮的方法來(lái)描述無(wú)窮的(隨機(jī)的)資訊世界,所以能完全描述資訊世界;易於維護(hù)。
缺點(diǎn):較難掌握
。62
【例】面向?qū)ο蟮姆椒ㄔ陔娮由虅?wù)中的應(yīng)用有:網(wǎng)站前臺(tái)介面的製作,資訊的發(fā)佈和處理,用戶在網(wǎng)上流覽和錄入資訊等應(yīng)用軟體都是利用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)與實(shí)現(xiàn)的。個(gè)人網(wǎng)頁(yè)的製作也是面向?qū)ο蠓椒ǖ膽?yīng)用例子。窗口操作系統(tǒng)與互聯(lián)網(wǎng)的出現(xiàn),為面向?qū)ο蠓椒ㄩ_闢了無(wú)限的前景。63面向?qū)ο蠓椒ǖ奶乩?:
面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法
內(nèi)容:業(yè)務(wù)基礎(chǔ)平臺(tái)遮罩了操作系統(tǒng)平臺(tái)、資料庫(kù)平臺(tái)的諸多技術(shù)細(xì)節(jié),採(cǎi)用面向業(yè)務(wù)的建模方法進(jìn)行開發(fā),有效彌合了技術(shù)人員和業(yè)務(wù)人員之間的溝通鴻溝,可以使開發(fā)人員更多地關(guān)注業(yè)務(wù)部分,而不是技術(shù)細(xì)節(jié)。
64面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法
特點(diǎn):面向業(yè)務(wù)領(lǐng)域的、而與技術(shù)無(wú)關(guān)的開發(fā)模式。本質(zhì)上仍然是面向?qū)ο蟮姆椒ā?/p>
優(yōu)點(diǎn):提升了構(gòu)件的複用性。缺點(diǎn):業(yè)務(wù)基礎(chǔ)平臺(tái)是面向業(yè)務(wù)行業(yè)的,不同行業(yè)之間的通用平臺(tái)標(biāo)準(zhǔn)尚出產(chǎn)生。651.7.3面向數(shù)據(jù)的方法
這裏講的面向數(shù)據(jù)的方法,既不是傳統(tǒng)軟體工程中所講的“面向數(shù)據(jù)流”的方法,也不是傳統(tǒng)意義上的面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法。事實(shí)上,這兩種方法早已過(guò)時(shí),但是許多書上還在講,真是有點(diǎn)誤人子弟。66面向數(shù)據(jù)的方法
我們講的面向數(shù)據(jù)的方法,是面向元數(shù)據(jù)(Metadata)的方法,它是建設(shè)資訊系統(tǒng)資料庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的基本方法。該方法將與關(guān)係資料庫(kù)同生死、共患難。
67面向數(shù)據(jù)的方法內(nèi)容:
(1)數(shù)據(jù)位於資訊系統(tǒng)的中心。
(2)由元數(shù)據(jù)構(gòu)成的數(shù)據(jù)模型是穩(wěn)定的。
(3)對(duì)元數(shù)據(jù)的處理方法是可變的。
(4)企業(yè)資訊系統(tǒng)的核心是數(shù)據(jù)模型。
(5)系統(tǒng)的實(shí)現(xiàn)方法主要是面向?qū)ο蟆?/p>
(6)用戶始終參與資訊系統(tǒng)的開發(fā)。68面向數(shù)據(jù)的方法
特點(diǎn):程式的執(zhí)行過(guò)程,有時(shí)由程式員控制,有時(shí)由用戶控制。優(yōu)點(diǎn):適合數(shù)據(jù)層(資料庫(kù)伺服器)設(shè)計(jì)與實(shí)現(xiàn)。缺點(diǎn):實(shí)現(xiàn)窗口介面較困難。69
【例】面向數(shù)據(jù)的方法在電子商務(wù)中也有應(yīng)用。網(wǎng)站後臺(tái)資料庫(kù)伺服器上的數(shù)據(jù)處理和數(shù)據(jù)傳輸,其軟體都是利用面向數(shù)據(jù)的方法設(shè)計(jì)與實(shí)現(xiàn)的。實(shí)際上,不管網(wǎng)路應(yīng)用系統(tǒng)結(jié)構(gòu)是兩層結(jié)構(gòu)或三層結(jié)構(gòu),在資料庫(kù)伺服器上對(duì)數(shù)據(jù)的分析、設(shè)計(jì)和實(shí)現(xiàn),都自覺或不自覺地使用了面向數(shù)據(jù)的方法。70*1.7.4軟體工程的形式化方法
不講,考研的人可以自學(xué)。因?yàn)樵贗T企業(yè)用不上。711.7.5四種開發(fā)方法總結(jié)對(duì)比方法名稱優(yōu)點(diǎn)缺點(diǎn)適合的場(chǎng)合面向過(guò)程的方法
簡(jiǎn)單好學(xué)
不適應(yīng)窗口介面,維護(hù)困難
大型工程計(jì)算,即時(shí)數(shù)據(jù)跟蹤處理,各種自動(dòng)化控制系統(tǒng),以及系統(tǒng)軟體實(shí)現(xiàn)等領(lǐng)域面向?qū)ο蟮姆椒?/p>
功能強(qiáng)大,易於維護(hù)
不易掌握
互聯(lián)網(wǎng)路時(shí)代,完全由用戶交互控制程式執(zhí)行過(guò)程的應(yīng)用軟體和系統(tǒng)軟體的開發(fā)面向數(shù)據(jù)的方法
通俗易懂
不適應(yīng)窗口介面
以關(guān)係資料庫(kù)管理系統(tǒng)為支撐環(huán)境的資訊系統(tǒng)建設(shè)形式化方法準(zhǔn)確、嚴(yán)謹(jǐn)難於上手和應(yīng)用對(duì)安全性要求極高,不容許出錯(cuò)的軟體系統(tǒng),如軍事、醫(yī)藥、交通等領(lǐng)域721.8軟體工程的五個(gè)面向理論
面向過(guò)程的方法、面向?qū)ο蟮姆椒?、面向?shù)據(jù)的方法,這三種開發(fā)方法哪個(gè)最好呢?當(dāng)然是面向?qū)ο?。但是,任何好與壞,都是相對(duì)的,有條件的,不是絕對(duì)的。這三種開發(fā)方法各有千秋,面向?qū)ο蠓椒ㄉ詮?qiáng),它們分別適合於不同的環(huán)境和不同的場(chǎng)合。73五個(gè)面向理論
綜合這三種開發(fā)方法的優(yōu)勢(shì),特別提出“五個(gè)面向”的實(shí)施理論:
1.面向流程分析
2.面向數(shù)據(jù)設(shè)計(jì)
3.面向?qū)ο髮?shí)現(xiàn)
4.面向功能測(cè)試
5.面向過(guò)程管理74面向流程分析
面向流程分析,就是面向流程需求分析。在需求分析時(shí),系統(tǒng)分析員要面向業(yè)務(wù)流、資金流、資訊流進(jìn)行分析。只有將這“三個(gè)流”分析透了,才建立好系統(tǒng)的業(yè)務(wù)模型和功能模型。因?yàn)殡娔X網(wǎng)絡(luò)在本質(zhì)上只認(rèn)識(shí)數(shù)據(jù)及數(shù)據(jù)流(二進(jìn)位數(shù)據(jù)的流動(dòng)),而且這“三個(gè)流”,可以用“數(shù)據(jù)流”這一個(gè)流程來(lái)代替,或者說(shuō)“三個(gè)流”是“數(shù)據(jù)流”在三個(gè)不同方向的投影。75面向數(shù)據(jù)設(shè)計(jì)
面向數(shù)據(jù)設(shè)計(jì),就是面向元數(shù)據(jù)進(jìn)行概要設(shè)計(jì)。在系統(tǒng)設(shè)計(jì)時(shí),系統(tǒng)設(shè)計(jì)師要採(cǎi)用面向數(shù)據(jù)的方法進(jìn)行概要設(shè)計(jì)。面向數(shù)據(jù)就是面向“元數(shù)據(jù)”(Metadata)。76面向數(shù)據(jù)設(shè)計(jì)
概要設(shè)計(jì)的主要任務(wù)是建立系統(tǒng)的概念數(shù)據(jù)模型CDM和物理數(shù)據(jù)模型PDM,以及體現(xiàn)業(yè)務(wù)規(guī)則的存儲(chǔ)過(guò)程和觸發(fā)器,然後以數(shù)據(jù)模型為支撐,去實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型。為此,要對(duì)元數(shù)據(jù)進(jìn)行分析,只有將元數(shù)據(jù)分析透了,才能建立好由元數(shù)據(jù)所構(gòu)成的數(shù)據(jù)模型。這裏講的面向數(shù)據(jù)設(shè)計(jì),主要表現(xiàn)在資料庫(kù)伺服器上的關(guān)係資料庫(kù)設(shè)計(jì)。77面向?qū)ο髮?shí)現(xiàn)
面向?qū)ο髮?shí)現(xiàn),就是面向?qū)ο筮M(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)。在兩層結(jié)構(gòu)(C/S)的客戶層上,在三層結(jié)構(gòu)(B/A/S)的表示層和業(yè)務(wù)邏輯層上,進(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)時(shí),要採(cǎi)用面向?qū)ο蟮姆椒ā.?dāng)然,在數(shù)據(jù)服務(wù)層上的設(shè)計(jì)和編程實(shí)現(xiàn),仍然要採(cǎi)用面向數(shù)據(jù)的方法,因?yàn)橹饕窃O(shè)計(jì)和編寫存儲(chǔ)過(guò)程,它們是面向數(shù)據(jù)的,不是面向?qū)ο蟮摹?8面向?qū)ο髮?shí)現(xiàn)
詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn),實(shí)質(zhì)上是用構(gòu)件加上程式來(lái)實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型。只有對(duì)三個(gè)模型思想(業(yè)務(wù)模型、功能模型、數(shù)據(jù)模型)吃透了,才能設(shè)計(jì)和編寫出合格的程式。面向?qū)ο髮?shí)現(xiàn),實(shí)質(zhì)上是面向類實(shí)現(xiàn),因?yàn)閷?shí)例化的類稱為對(duì)象。79面向功能測(cè)試
面向功能測(cè)試,就是面向功能進(jìn)行單元測(cè)試、集成測(cè)試、Alpha測(cè)試和Beta測(cè)試。在進(jìn)行測(cè)試時(shí),測(cè)試人員要採(cǎi)用面向功能的方法。這裏講的功能,包括系統(tǒng)的功能、性能和介面三部分內(nèi)容。面向功能測(cè)試的方法就是黑盒子測(cè)試方法,今後採(cǎi)用白盒子測(cè)試方法(面向程式執(zhí)行路徑測(cè)試)的人,只有從事軟體構(gòu)件生產(chǎn)和核心代碼編程的極少數(shù)人員。80面向過(guò)程管理
面向過(guò)程管理,就是面向過(guò)程對(duì)軟體生命週期各個(gè)階段進(jìn)行管理和控制。因?yàn)檐涹w產(chǎn)品品質(zhì)的提高與改進(jìn),完全取決於軟體企業(yè)生產(chǎn)過(guò)程的改善。無(wú)論是CMM/CMMI、ISO9000、微軟企業(yè)文化,都是站在軟體生命週期過(guò)程的觀念上去提高軟體企業(yè)的素質(zhì)。811.9軟體的支持過(guò)程
軟體工程中的過(guò)程,是指軟體生命週期(LifeCycle)中的時(shí)間序列。過(guò)程作為一個(gè)時(shí)間序列,它自然有起始點(diǎn)和終止點(diǎn)。例如,可以將一個(gè)軟體的生命週期劃分為市場(chǎng)調(diào)研、立項(xiàng)、需求分析、策劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單體測(cè)試、集成測(cè)試、運(yùn)行、維護(hù)這幾個(gè)過(guò)程。過(guò)程與階段(Phase)相對(duì)應(yīng),階段與里程碑(Milestone)相對(duì)應(yīng)。某些重要的里程碑上的文檔,又對(duì)應(yīng)基線(baseline)。82軟體的支持過(guò)程軟體工程的支持過(guò)程,由支持軟體生存週期各個(gè)階段的生產(chǎn)工具所組成。生產(chǎn)工具如需求分析工具、設(shè)計(jì)工具、實(shí)現(xiàn)工具、測(cè)試工具、維護(hù)工具、配置工具,開發(fā)環(huán)境。軟體開發(fā)環(huán)境又稱CASE工具,如北大青鳥系統(tǒng),SanFrancisco,Rose,面向行業(yè)領(lǐng)域開發(fā)的業(yè)務(wù)基礎(chǔ)平臺(tái)(包括軟體企業(yè)內(nèi)部使用的各種J2EE平臺(tái)和.Net平臺(tái))。831.10軟體的管理過(guò)程
“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過(guò)程”。
管理過(guò)程和支持過(guò)程又稱為“軟體過(guò)程工程”。
1974年,美國(guó)人始認(rèn)識(shí)到“軟體需要管理”。
1984年,美國(guó)人認(rèn)識(shí)到“軟體管理是過(guò)程管理”。84軟體的管理過(guò)程
軟體中的過(guò)程,分為“基本過(guò)程、支持過(guò)程、組織過(guò)程”三種.
基本過(guò)程是需求、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、驗(yàn)收過(guò)程;
支持過(guò)程是支持過(guò)程開發(fā)和過(guò)程管理的各種CASE工具;
組織過(guò)程是建立的有關(guān)小組,如軟體工程組、品質(zhì)保證組、測(cè)試組、文檔組。85軟體的管理過(guò)程
軟體工程中主要存在3類過(guò)程管理模型:
(1).ISO9000品質(zhì)管理和品質(zhì)保證體系
(2).CMMI過(guò)程能力成熟度模型集成
(3).企業(yè)文化
(微軟企業(yè)文化、敏捷文化現(xiàn)象等
)86序號(hào)名稱來(lái)源特點(diǎn)1ISO9000品質(zhì)管理和品質(zhì)保證體系
國(guó)際標(biāo)準(zhǔn)化組織
ISO
按20多個(gè)品質(zhì)要素管理2CMMI軟體能力成熟度模型
美國(guó)卡內(nèi)基-梅隆大學(xué)軟體工程研究所(CMU/SEI)
按24個(gè)過(guò)程域PA,分階段模型和連續(xù)模型兩種方式管理,屬於重載過(guò)程管理3
軟體企業(yè)文化Microsoft公司、IBM公司、敏捷方法
屬於輕載過(guò)程管理871.10.1ISO9000體系1.“品質(zhì)手冊(cè)”內(nèi)容:品質(zhì)方針和目標(biāo)、公司簡(jiǎn)介、組織機(jī)構(gòu)、品質(zhì)體系要求、品質(zhì)手冊(cè)管理細(xì)則等2.“程式檔”內(nèi)容:規(guī)定每個(gè)品質(zhì)要素在何時(shí)、在何地、由何人、按照什麼標(biāo)準(zhǔn)、規(guī)範(fàn)或規(guī)程去做。做完後書寫品質(zhì)記錄的範(fàn)本格式(如:用戶需求報(bào)告範(fàn)本或指南、設(shè)計(jì)說(shuō)明書範(fàn)本或指南、測(cè)試報(bào)告範(fàn)本或指南、用戶手冊(cè)範(fàn)本、評(píng)審報(bào)告範(fàn)本)88ISO9000體系3.“品質(zhì)記錄”內(nèi)容:對(duì)每個(gè)品質(zhì)要素,在執(zhí)行活動(dòng)中,按照書寫品質(zhì)記錄的範(fàn)本格式書寫的文檔(如:用戶需求報(bào)告、設(shè)計(jì)說(shuō)明書、測(cè)試報(bào)告、用戶手冊(cè)、各種評(píng)審與審計(jì)報(bào)告)891.10.2微軟企業(yè)文化
“平等、自由、親和、融洽、創(chuàng)新、激情、溝通和主人翁精神”的企業(yè)文化,是“以人為本”企業(yè)文化的具體表現(xiàn),是微軟的精神管理模式。企業(yè)文化實(shí)質(zhì)上是一種企業(yè)環(huán)境,而環(huán)境就是一種生產(chǎn)力。微軟的用人之道是“人品、智慧、團(tuán)隊(duì)精神”三要素,以及“寧缺勿濫”和“不拘一格”的原則,它是微軟招聘、培養(yǎng)、考察、提升員工的標(biāo)準(zhǔn)。90軟體招聘人才例子
上世紀(jì)末,國(guó)內(nèi)軟體公司人才跳槽現(xiàn)象普遍,軟體版權(quán)觀念淡薄,有這樣一個(gè)人到微軟公司去應(yīng)聘,你們認(rèn)為能成功嗎?這個(gè)人自稱,在原公司掌握了某軟體產(chǎn)品的核心技術(shù),而且將原代碼也偷出來(lái)了,因此可為你公司創(chuàng)造很大經(jīng)濟(jì)效益。911.10.3CMM/CMMI
CMM/CMMI的作用概括地講,軟體企業(yè)的過(guò)程能力成熟度模型CMM的作用,是軟體組織的能力評(píng)估和過(guò)程改進(jìn),它的應(yīng)用領(lǐng)域具體表現(xiàn)在三個(gè)方面:
(1)軟體組織:用它來(lái)不斷改進(jìn)自身的軟體過(guò)程管理能力;
(2)評(píng)估機(jī)構(gòu):用它來(lái)評(píng)估某軟體組織當(dāng)前軟體能力成熟度的級(jí)別;
(3)客戶:用它來(lái)評(píng)價(jià)某承包商(軟體外包商)的軟體能力。92CMM/CMMI的實(shí)質(zhì)
(1)以“過(guò)程”為核心抓軟體組織的管理,即軟體“組織”的過(guò)程改進(jìn)。
(2)以“專案”為手段抓團(tuán)隊(duì)開發(fā)過(guò)程的“活動(dòng)”,即落實(shí)過(guò)程改進(jìn)的措施。
(3)以“活動(dòng)”記錄為基礎(chǔ)抓軟體過(guò)程的“度量”,即“度量”軟體組織改進(jìn)的情況。通過(guò)以上三項(xiàng)措施,使軟體過(guò)程逐漸變?yōu)榭梢暋⒖煽?,從而?shí)現(xiàn)CMMI精神:品質(zhì)源於過(guò)程、過(guò)程需要改進(jìn)、改進(jìn)需要模型、改進(jìn)永無(wú)止境。93CMM/CMMI的實(shí)質(zhì)“過(guò)程”,既包括軟體開發(fā)過(guò)程,又包括軟體管理過(guò)程。“組織”,是指軟體企業(yè)自己,或自己內(nèi)部的一個(gè)軟體研發(fā)部門?!皩0浮?,是指軟體企業(yè)的專案開發(fā)團(tuán)隊(duì)?!盎顒?dòng)”,包括專案的開發(fā)活動(dòng)和專案的管理活動(dòng)兩個(gè)方面。“度量”,是指對(duì)軟體測(cè)量資料庫(kù)中的專案管理記錄數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析。94CMM的級(jí)別CMM1級(jí):初始級(jí),無(wú)序管理。
CMM2級(jí):可重複級(jí),專案級(jí)管理。
CMM3級(jí):已定義級(jí),組織級(jí)管理。
CMM4級(jí):已管理級(jí),數(shù)據(jù)級(jí)管理。
CMM5級(jí):優(yōu)化級(jí),優(yōu)化級(jí)管理。95CMM/CMMI的內(nèi)容(1)CMM的內(nèi)容:五個(gè)級(jí)別、18個(gè)關(guān)鍵過(guò)程域(KPA)(2)CMMI的內(nèi)容:階段式模型:五個(gè)級(jí)別、24個(gè)過(guò)程域(PA)
連續(xù)式模型:六個(gè)級(jí)別、24個(gè)過(guò)程域(PA)961.11軟體工程與資訊系統(tǒng)工程
利用電腦網(wǎng)絡(luò)技術(shù)、數(shù)字通信技術(shù)與資料庫(kù)技術(shù)實(shí)現(xiàn)資訊採(cǎi)集和處理的系統(tǒng),稱為當(dāng)代資訊系統(tǒng)。資訊系統(tǒng)由社會(huì)環(huán)境、網(wǎng)路環(huán)境、數(shù)據(jù)環(huán)境和程式環(huán)境這四個(gè)部分組成。97軟體工程與資訊系統(tǒng)工程
資訊標(biāo)準(zhǔn)化,就是資訊代碼化和規(guī)範(fàn)化。
代碼化就是用數(shù)字或字元代碼來(lái)表示資訊,這種表示方式便於在資訊系統(tǒng)中交流。規(guī)範(fàn)化就是代碼要遵守一套規(guī)定和標(biāo)準(zhǔn),不能自行其事。981.12本章小結(jié)
本章介紹了軟體工程的定義、內(nèi)容、作用,以及三種開發(fā)方法、五個(gè)面向理論。這些都是軟體工程的精華;本章既是研究軟體工程的出發(fā)點(diǎn),又是研究軟體工程的歸宿。既是緒論,又是總結(jié)。由於軟體工程是一門實(shí)踐性很強(qiáng)的科學(xué),所以要真正弄懂它,吃透它,一定要理論聯(lián)繫實(shí)際,學(xué)以致用。99資訊系統(tǒng)建設(shè)案例分析
港口綜合MIS系統(tǒng)包括如下子系統(tǒng):(1)貨物運(yùn)輸子系統(tǒng)(2)船舶調(diào)度子系統(tǒng)(3)設(shè)備管理子系統(tǒng)(4)物資管理子系統(tǒng)(5)客運(yùn)管理子系統(tǒng)(6)外輪代理子系統(tǒng)(7)集裝箱子系統(tǒng)(8)人事勞資子系統(tǒng)港口資訊系統(tǒng)建設(shè)案例分析
成功的秘密歸納起來(lái),有4點(diǎn):(1)自始至終堅(jiān)持採(cǎi)用“面向數(shù)據(jù)的方法”不動(dòng)搖。即堅(jiān)持面向數(shù)據(jù)分析、面向數(shù)據(jù)設(shè)計(jì)、面向數(shù)據(jù)實(shí)現(xiàn)、面向數(shù)據(jù)測(cè)試、面向數(shù)據(jù)維護(hù)。(2)自始至終堅(jiān)持採(cǎi)用Oracle關(guān)係資料庫(kù)管理系統(tǒng)不動(dòng)搖??陀^地說(shuō),建設(shè)大型資訊系統(tǒng),Oracle資料庫(kù)具有穩(wěn)定可靠的強(qiáng)大功能和優(yōu)秀性能。港口資訊系統(tǒng)建設(shè)案例分析
(3)自始至終堅(jiān)持採(cǎi)用CASE工具不動(dòng)搖。這些工具包括設(shè)計(jì)工具PowerDesigner和實(shí)現(xiàn)工具Developer2000,它們都是面向數(shù)據(jù)的開發(fā)工具。(4)自始至終堅(jiān)持港口資訊系統(tǒng)建設(shè)不動(dòng)搖。要做行業(yè)ERP,就必須熟悉並精通該行業(yè)的業(yè)務(wù)流程和規(guī)則,長(zhǎng)期堅(jiān)持某一行業(yè)的方向不動(dòng)搖,才能做該行業(yè)領(lǐng)域的業(yè)務(wù)專家,才能與時(shí)俱進(jìn)地把握該行業(yè)領(lǐng)域的客戶需求。2024-2-71033.1可行性研究任務(wù)與步驟可行性研究與其他的研究不同,這個(gè)階段不是去開發(fā)一個(gè)軟體專案,也不是解決問(wèn)題。而是研究這個(gè)軟體專案是否值得去開發(fā),其中的關(guān)鍵和技術(shù)難點(diǎn)是什麼,問(wèn)題能否得到解決,怎樣達(dá)到目的等??尚行匝芯康闹饕獌?nèi)容是對(duì)問(wèn)題的定義,要初步確定問(wèn)題的規(guī)模和目標(biāo),問(wèn)題定義後,要導(dǎo)出系統(tǒng)的邏輯模型。然後從系統(tǒng)的邏輯模型出發(fā),選擇若干供選擇的主要系統(tǒng)方案。2024-2-7104(1)技術(shù)可行性研究。根據(jù)客戶提出的系統(tǒng)功能、性能及實(shí)現(xiàn)系統(tǒng)的各項(xiàng)約束條件,從技術(shù)的角度研究實(shí)現(xiàn)系統(tǒng)的可行性。(2)經(jīng)濟(jì)可行性研究。進(jìn)行成本效益分析,評(píng)估專案的開發(fā)成本,估算開發(fā)成本是否會(huì)超過(guò)專案預(yù)期的全部利潤(rùn)。分析系統(tǒng)開發(fā)對(duì)其他產(chǎn)品或利潤(rùn)的影響。2024-2-7105(3)法律可行性研究。研究在系統(tǒng)開發(fā)過(guò)程中可能涉及的各種合同、侵權(quán)、責(zé)任以及各種與法律相抵觸的問(wèn)題。(4)開發(fā)方案的選擇性研究。提出並評(píng)價(jià)實(shí)現(xiàn)系統(tǒng)的各種開發(fā)方案,從中選出一種用於軟體專案開發(fā)。2024-2-71063.1.1研究任務(wù)在進(jìn)行專案可行性研究中,首先需要進(jìn)行概要的分析研究,初步確定專案的規(guī)模和目標(biāo),確定專案的約束和限制,把它們清楚地列舉出來(lái)。要研究目前正在使用的系統(tǒng)。如果目前有一個(gè)系統(tǒng)正在使用,那麼這個(gè)系統(tǒng)一定能完成某些有用的工作。所以新系統(tǒng)的目標(biāo)也必須能完成這些基本功能。如果現(xiàn)有的系統(tǒng)是完美的,那麼用戶就不會(huì)提出開發(fā)新系統(tǒng)。2024-2-7107一般來(lái)說(shuō),應(yīng)該從以下四方面分析研究每種解決方法的可行性。1.技術(shù)可行性要確定使用現(xiàn)有的技術(shù)是否能夠?qū)崿F(xiàn)系統(tǒng),那麼就要對(duì)開發(fā)專案的功能、性能和限制條件進(jìn)行分析,確定在現(xiàn)有的資源條件下,技術(shù)風(fēng)險(xiǎn)有多大,專案是否能實(shí)現(xiàn),這些是技術(shù)可行性研究的內(nèi)容。2024-2-7108數(shù)學(xué)建模、原型建造和模擬是基於電腦系統(tǒng)技術(shù)分析活動(dòng)的有效工具,描述了技術(shù)分析建模過(guò)程的資訊流圖。系統(tǒng)分析員通過(guò)對(duì)現(xiàn)實(shí)世界的觀察和分析建立技術(shù)分析模型,評(píng)估模型的行為並將它們與現(xiàn)實(shí)世界對(duì)比,論證系統(tǒng)開發(fā)在技術(shù)上的可行性和優(yōu)越性。2024-2-7109基於電腦系統(tǒng)模型必須具備下列特性:(1)能夠反映系統(tǒng)配置的動(dòng)態(tài)特性,容易理解和操作,能夠提供系統(tǒng)真實(shí)的結(jié)果並有利於評(píng)審。(2)能夠綜合與系統(tǒng)有關(guān)的全部因素,能夠再現(xiàn)系統(tǒng)運(yùn)行的結(jié)果。(3)能夠突出與系統(tǒng)有關(guān)的重要因素,能夠忽略與系統(tǒng)無(wú)關(guān)的或次要的因素。(4)結(jié)構(gòu)簡(jiǎn)單,容易實(shí)現(xiàn),容易修改。2024-2-7110技術(shù)可行性一般要考慮的情況如下:(1)技術(shù)。 通過(guò)調(diào)查瞭解當(dāng)前最先進(jìn)的技術(shù),分析相關(guān)技術(shù)的發(fā)展是否支持這個(gè)系統(tǒng)。(2)資源的有效性。 用於建立系統(tǒng)的硬體設(shè)備、軟體、開發(fā)環(huán)境等資源是否具備。特別是用於開發(fā)專案的人員在技術(shù)和時(shí)間上是否存在問(wèn)題。2024-2-71112.經(jīng)濟(jì)可行性電腦技術(shù)發(fā)展異常迅速的根本原因在於電腦的應(yīng)用促進(jìn)了社會(huì)經(jīng)濟(jì)的發(fā)展,給社會(huì)帶來(lái)了巨大的經(jīng)濟(jì)效益。因此,基於電腦系統(tǒng)的成本-效益分析是可行性研究的重要內(nèi)容,它用於評(píng)估基於電腦系統(tǒng)的經(jīng)濟(jì)合理性,給出系統(tǒng)開發(fā)的成本論證,並將估算的成本與預(yù)期的利潤(rùn)進(jìn)行對(duì)比。2024-2-7112經(jīng)濟(jì)可行性問(wèn)題包含兩方面:一方面是經(jīng)濟(jì)實(shí)力;另一方面是經(jīng)濟(jì)效益。分析經(jīng)濟(jì)可行性研究的內(nèi)容是要進(jìn)行開發(fā)成本的估算,瞭解專案成功取得效益的評(píng)估,確定要開發(fā)的專案是否值得投資開發(fā)。2024-2-7113一般說(shuō)來(lái),基於電腦系統(tǒng)的成本由如下四部分組成:(1)購(gòu)置並安裝軟硬體及有關(guān)設(shè)備的費(fèi)用;(2)系統(tǒng)開發(fā)費(fèi)用;(3)系統(tǒng)安裝、運(yùn)行和維護(hù)費(fèi)用;(4)人員培訓(xùn)費(fèi)用。2024-2-7114在系統(tǒng)分析和設(shè)計(jì)階段只能得到上述費(fèi)用的預(yù)算,即估算成本。在系統(tǒng)一切完畢並交付用戶運(yùn)行後,上述費(fèi)用的統(tǒng)計(jì)結(jié)果就是實(shí)際成本。系統(tǒng)效益包括經(jīng)濟(jì)效益和社會(huì)效益兩部分。經(jīng)濟(jì)效益指應(yīng)用系統(tǒng)為用戶增加的收入,它可以通過(guò)直接的或統(tǒng)計(jì)的方法估算;社會(huì)效益只能用定性的方法估算。2024-2-71153.社會(huì)可行性 社會(huì)可行性研究的內(nèi)容包括:研究開發(fā)的專案是否存在任何侵犯、妨礙等責(zé)任問(wèn)題。4.操作的可行性 要開發(fā)專案的運(yùn)行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)和操作方式是否可行。2024-2-71163.1.2研究步驟1.系統(tǒng)定義系統(tǒng)定義是一個(gè)系統(tǒng)的關(guān)鍵,如果系統(tǒng)沒有定義好,也就是沒有確定系統(tǒng)的邊界。就談不上確定專案規(guī)模和目標(biāo)。為了定義好一個(gè)系統(tǒng),分析員對(duì)有關(guān)人員進(jìn)行調(diào)查訪問(wèn),仔細(xì)閱讀和分析有關(guān)的材料,對(duì)專案的規(guī)模和目標(biāo)進(jìn)行定義和確認(rèn),描述專案的一切限制和約束,確保分析員正在解決的問(wèn)題確實(shí)是要解決的問(wèn)題。2024-2-71172.對(duì)於現(xiàn)行系統(tǒng)進(jìn)行分析研究要認(rèn)識(shí)到現(xiàn)行系統(tǒng)是資訊的重要來(lái)源。需要研究它的基本功能、性能、環(huán)境,存在的問(wèn)題,運(yùn)行現(xiàn)行系統(tǒng)需要多少費(fèi)用,對(duì)新系統(tǒng)有什麼新的功能要求,新系統(tǒng)運(yùn)行時(shí)能否減少使用費(fèi)用等。具體方法可以實(shí)地考察現(xiàn)行系統(tǒng),收集、研究和分析現(xiàn)行系統(tǒng)的文檔資料。2024-2-71183.導(dǎo)出新系統(tǒng)的邏輯模型根據(jù)對(duì)現(xiàn)行系統(tǒng)的分析研究,搞清了新舊系統(tǒng)的特徵,逐漸明確新系統(tǒng)的功能、處理流程以及所受的約束。有了這些理解後,就可以用建立邏輯模型的工具——數(shù)據(jù)流圖和數(shù)據(jù)字典來(lái)描述數(shù)據(jù)在系統(tǒng)中的流動(dòng)和處理情況。2024-2-71194.設(shè)計(jì)方案分析員根據(jù)新系統(tǒng)的高層邏輯模型,從技術(shù)角度出發(fā),根據(jù)用戶的要求和開發(fā)的技術(shù)力量,提出實(shí)現(xiàn)高層邏輯模型的不同方案。5.推薦可行的方案根據(jù)上述可行性研究的結(jié)果,同時(shí)要根據(jù)用戶的具體情況,應(yīng)該決定該專案是否值得去開發(fā)。2024-2-71206.編寫可行性研究報(bào)告將上述可行性研究過(guò)程的結(jié)果按照:說(shuō)明要求、目的、條件與限制、可行性研究方法及評(píng)價(jià)尺度;處理流程、工作負(fù)荷、費(fèi)用開銷和局限性;說(shuō)明處理流程、運(yùn)行環(huán)境和局限性;技術(shù)條件的可行性;經(jīng)濟(jì)方面的可行性;社會(huì)條件的可行性;其他可供選擇的系統(tǒng);結(jié)論的順序?qū)懗煽尚行匝芯繄?bào)告,提請(qǐng)用戶和使用部門仔細(xì)審查,從而決定該專案是否進(jìn)行開發(fā),是否接受可行的實(shí)現(xiàn)方案。2024-2-71213.2系統(tǒng)分析如果確認(rèn)開發(fā)一個(gè)新的軟體系統(tǒng)是必要而且可能的,那麼就要進(jìn)入系統(tǒng)分析階段。這個(gè)時(shí)期的首要任務(wù)是認(rèn)識(shí)和對(duì)問(wèn)題的評(píng)價(jià)、建立模型和對(duì)規(guī)格的分析。系統(tǒng)分析員要研究系統(tǒng)規(guī)格說(shuō)明(systemspecification)和軟體專案計(jì)畫(softwareprojectplan)。其次,為了確保對(duì)問(wèn)題的識(shí)別,必須為分析建立通信關(guān)係。系統(tǒng)分析員的目標(biāo)是弄清用戶已經(jīng)理解的基本問(wèn)題元素。2024-2-7122第二項(xiàng)任務(wù)是分析,是主要工作問(wèn)題評(píng)價(jià)與解的綜合。系統(tǒng)分析員必須定義和詳細(xì)描述全部軟體功能,熟悉影響系統(tǒng)事件前後關(guān)係的軟體行為,建立系統(tǒng)介面的特徵,評(píng)價(jià)資訊流和資訊的內(nèi)容,以及揭示設(shè)計(jì)限制。最後一項(xiàng)任務(wù)是需求分析文檔(規(guī)格說(shuō)明和用戶手冊(cè))。它是作為用戶和開發(fā)人員進(jìn)行評(píng)審的基礎(chǔ)。2024-2-71233.2.1系統(tǒng)分析員系統(tǒng)分析員必須具備下列能力:(1)能掌握抽象概念(abstractconcepts),並能把其整理為邏輯劃分(logicaldivisions),以及根據(jù)每一個(gè)邏輯劃分綜合為解(solutions)的能力。(2)有弄清用戶環(huán)境的能力。(3)有從衝突(conflict)或混淆(confusions)中吸取恰當(dāng)事實(shí)的能力。2024-2-7124(4)有用較好的書面和口頭形式進(jìn)行通信(communication)的能力。(5)有把硬體和軟體系統(tǒng)用於用戶環(huán)境(user/customerenvironments)的能力。(6)“從樹木見森林”的能力。2024-2-7125系統(tǒng)分析員在軟體需求分析階段有五個(gè)方面的工作:(1)問(wèn)題識(shí)別(problemrecognition)。(2)評(píng)價(jià)和綜合(evaluationandsynthesis)。(3)建模(modeling)。(4)規(guī)格說(shuō)明(specification)。(5)評(píng)審(review)。2024-2-71263.2.2面臨的問(wèn)題域在系統(tǒng)分析的過(guò)程中,都會(huì)遇到許多問(wèn)題。問(wèn)題識(shí)別與問(wèn)題評(píng)價(jià)和解綜合,在很大程度上決定於能否獲得恰當(dāng)?shù)馁Y訊。應(yīng)當(dāng)收集什麼資訊?應(yīng)當(dāng)怎樣對(duì)它們進(jìn)行表示?誰(shuí)能提供各種資訊的初始模型?以及採(cǎi)用什麼技術(shù)和工具才能方便地進(jìn)行資訊收集?所有這些都是要解決的問(wèn)題。2024-2-71273.2.3通信技術(shù)一個(gè)軟體開發(fā)的開始往往是用戶提出一個(gè)問(wèn)題,並認(rèn)為這個(gè)問(wèn)題可能適合用電腦來(lái)解決,於是尋找開發(fā)者,這時(shí)開發(fā)者對(duì)用戶的請(qǐng)求回答是可以幫助的。這樣,開發(fā)者與用戶間的通信就開始了。2024-2-71281.過(guò)程的開始當(dāng)用戶與開發(fā)者有了合作意向後,經(jīng)常使用的分析技術(shù)是會(huì)議或訪問(wèn),將它作為用戶和開發(fā)人員之間的通信橋樑。系統(tǒng)分析員可以就此切入,瞭解用戶的現(xiàn)行運(yùn)作,希望在那些地方用電腦來(lái)解決問(wèn)題,提出用戶、總目標(biāo)和效益方面問(wèn)題,如:2024-2-7129(1)這項(xiàng)工作主要在哪些部門應(yīng)用?(2)專案的結(jié)構(gòu)主要是誰(shuí)使用?(3)專案成功的應(yīng)用帶來(lái)什麼樣的經(jīng)濟(jì)效益?(4)為了達(dá)到目的,還需要其他什麼資源?2024-2-7130為了利於系統(tǒng)分析員對(duì)問(wèn)題更好地理解,而用戶又能夠表達(dá)關(guān)於目標(biāo)的理解。可以進(jìn)一步瞭解:(1)如何表示一個(gè)成功的目標(biāo)能產(chǎn)生一個(gè)好的輸出形式?(2)這樣的理解可以解決一些什麼樣的問(wèn)題?(3)顯示或描述一下這樣的目標(biāo)要使用的環(huán)境。(4)這種方式的解對(duì)特殊的性能問(wèn)題或限制將有哪些影響?2024-2-7131通過(guò)初步瞭解後,系統(tǒng)分析員會(huì)發(fā)現(xiàn)一些更具體和技術(shù)上的問(wèn)題。為了通信的有效性,要考慮的稱為元問(wèn)題(meta-questions)。建議如下:(1)誰(shuí)是能回答這些問(wèn)題的人?(2)誰(shuí)能貼切解決這些問(wèn)題?(3)問(wèn)題是否提得太多?(4)這裏還有其他人可以提供其他方面的資訊嗎?(5)還有什麼事情是我應(yīng)該問(wèn)的?2024-2-7132上述所有這些問(wèn)題將有助於打開僵局和初步的通信,這種通信是成功分析的基礎(chǔ)。在交流的過(guò)程中最好不要用一問(wèn)一答的會(huì)議形式。事實(shí)上,問(wèn)答式會(huì)議應(yīng)當(dāng)只用於第一次會(huì)面,然後採(cǎi)用交換式會(huì)議的形式,綜合問(wèn)題的各個(gè)元素協(xié)商和說(shuō)明。2024-2-71332.深入瞭解向用戶索取有關(guān)業(yè)務(wù)源頭與結(jié)果的資料,通過(guò)對(duì)資料的分析,對(duì)於一些複雜的業(yè)務(wù),要到現(xiàn)場(chǎng)去跟隨業(yè)務(wù)流程“跟單”,然後把理解的過(guò)程用合適的技術(shù)表示出來(lái)。2024-2-71343.方便的應(yīng)用規(guī)範(fàn)技術(shù)由於在思想上存在“你我”的問(wèn)題,一些研究機(jī)構(gòu)開發(fā)出一種面向組的方法,應(yīng)用於分析和規(guī)格說(shuō)明早期的需求收集,這種方法叫做方便的應(yīng)用規(guī)範(fàn)技術(shù)(FacilitatedApplicationSpecificationTechnique,簡(jiǎn)稱FAST)。FAST促使用戶和開發(fā)人員組成一個(gè)聯(lián)合組一起去確定問(wèn)題,提出解的各個(gè)元素,協(xié)商不同方法,並定義一個(gè)初步解的需求集。2024-2-7135FAST已廣泛地應(yīng)用於資訊系統(tǒng)界。這種技術(shù)對(duì)於促進(jìn)通信在所有類型的應(yīng)用中具有潛力?,F(xiàn)在,F(xiàn)AST有許多不同的方式,每種方式的使用都有不同的背景,但所有應(yīng)用都必須遵循以下原則:(1)會(huì)議由上一級(jí)部門或請(qǐng)中立部門主持,開發(fā)人員和用戶雙方參加。(2)一位主持人(可以是用戶、開發(fā)商或局外人),是被指定控制會(huì)議的人。(3)確定準(zhǔn)備和參加的原則。2024-2-7136(4)提出一個(gè)議事日程,這個(gè)議事日程是正規(guī)的,並包括所有重要觀點(diǎn)。但是要不拘禮節(jié)地鼓勵(lì)大家自由發(fā)表意見。(5)一張確定的日程(可以是工作單、可轉(zhuǎn)動(dòng)的圖表、牆上張貼物或牆上印刷牌)。(6)目標(biāo)就是確定問(wèn)題,提出解的各種元素,協(xié)商不同方法,以及定義一個(gè)初步解的需求集,而且能在一個(gè)有助於目標(biāo)完成的氣氛中進(jìn)行。2024-2-71373.3分析原理所有的分析方法都與下述一組基本原理相聯(lián)系:(1)問(wèn)題的資訊域必須能被表示和被理解。(2)應(yīng)當(dāng)開發(fā)描述系統(tǒng)資訊、功能和行為的模型。(3)問(wèn)題必須能按一定形式進(jìn)行分割,就是用一種層次(或分層)形式來(lái)揭示它們的細(xì)節(jié)。(4)分析過(guò)程應(yīng)當(dāng)從基本資訊開始,直到實(shí)現(xiàn)細(xì)節(jié)。2024-2-71383.3.1資訊域在電腦的應(yīng)用領(lǐng)域中,所有的軟體應(yīng)用都可以被統(tǒng)稱為數(shù)據(jù)處理(dataprocessing)。資訊處理也指處理代表資訊的數(shù)據(jù)並確定被處理數(shù)據(jù)的意義的過(guò)程,所以可以用資訊處理代替數(shù)據(jù)處理。資訊處理的對(duì)象是資訊,而資訊的定義是:一方面是物質(zhì)狀態(tài)發(fā)生改變的一種表徵,通常指數(shù)據(jù)消息中所包含的意義;另一方面它是知識(shí)的一種元素,以任何形式聚合,能產(chǎn)生一完整的概念、條件或情況的數(shù)據(jù)。2024-2-7139資訊域是一資訊字或一組資訊中的特定部分,資訊域中的內(nèi)容通常被作為一個(gè)整體來(lái)處理。它包括三種不同方面的數(shù)據(jù)和控制:資訊內(nèi)容、資訊結(jié)構(gòu)和資訊流。每個(gè)方面都由電腦程式處理。在需求分析的過(guò)程中,搜集與分析的主要對(duì)象是資訊域,為了完全地瞭解資訊域,對(duì)資訊的每一個(gè)方面都應(yīng)該進(jìn)行研究。2024-2-71401.資訊內(nèi)容 知識(shí)的一種元素,描述了單個(gè)數(shù)據(jù)和控制項(xiàng),這些項(xiàng)可以組成更大的資訊項(xiàng)。2.資訊結(jié)構(gòu) 資訊結(jié)構(gòu)描述了各種數(shù)據(jù)和控制項(xiàng)的內(nèi)部組織。2024-2-71413.資訊流 資訊流描述了數(shù)據(jù)和控制沿系統(tǒng)流動(dòng)變化的方式。2024-2-71423.3.2建立模型在軟體需求分析過(guò)程中,要完成將建立的系統(tǒng)的模型。模型主要說(shuō)明系統(tǒng)必須做什麼,而不是表達(dá)怎樣做。在一般情況下,用圖形符號(hào)表示的方法來(lái)描述資訊、處理、系統(tǒng)行為,而其他特性則使用性質(zhì)不同的和公認(rèn)的圖符(icons)表示。2024-2-7143在需求分析中,模型的建立可以反映人們對(duì)事物的認(rèn)識(shí),起到很重要的作用:首先,這種模型可以輔助分析人員更好地瞭解系統(tǒng)的資訊、功能和行為,從而使分析更容易和更系統(tǒng)化。其次,模型是評(píng)審的焦點(diǎn),是確定系統(tǒng)完整性(completeness)、一致性(consistence)和規(guī)格說(shuō)明準(zhǔn)確性(accuracy)的關(guān)鍵。最後,模型也是設(shè)計(jì)的基礎(chǔ)。模型能給設(shè)計(jì)人員提供一種軟體的基本運(yùn)算式,這種運(yùn)算式可以映射成為實(shí)現(xiàn)的正文。2024-2-71443.3.3分解在相關(guān)領(lǐng)域中,通常都會(huì)有涉及到多技術(shù)的複雜問(wèn)題分析。把一個(gè)很大和複雜的問(wèn)題作為一個(gè)整體很難被完全理解。因此,為了能夠較容易地理解這個(gè)問(wèn)題,人們力圖把這樣的問(wèn)題分解為若干部分。從本質(zhì)上講,分解就是把一個(gè)問(wèn)題劃分為幾個(gè)組成部分。在概念上,可以建立一種分層的功能或資訊運(yùn)算式,然後按下述兩條分解出最主要的元素:(1)在分層中,按垂直方向逐層細(xì)化。(2)在分層中,按水準(zhǔn)方向?qū)δ苓M(jìn)行分解。2024-2-7145對(duì)於文字處理軟體的需求,可以根據(jù)產(chǎn)品劃分的資訊、功能、行為等幾部分來(lái)分析。下圖給出了文字處理軟體功能部分的水準(zhǔn)分解和垂直分解。2024-2-71463.4系統(tǒng)模型與模擬3.4.1系統(tǒng)模型系統(tǒng)分析員將系統(tǒng)功能和性能分解,定義若干個(gè)子系統(tǒng)及其介面之後,開始建立系統(tǒng)模型,為需求分析和設(shè)計(jì)階段的工作奠定基礎(chǔ)。輸入—處理—輸出(IPO)結(jié)構(gòu)是系統(tǒng)建模的基礎(chǔ),它將基於電腦的系統(tǒng)轉(zhuǎn)換成一個(gè)資訊變換模型。2024-2-71471.結(jié)構(gòu)圖系統(tǒng)分析員用結(jié)構(gòu)範(fàn)本開發(fā)系統(tǒng)模型。它由用戶介面處理、輸入處理、處理和控制功能、輸出處理、維護(hù)和自測(cè)試五部分組成。結(jié)構(gòu)範(fàn)本能幫助分析人員按照系統(tǒng)工程和軟體工程的建模技術(shù)自頂向下、由粗到細(xì)地建立基於電腦系統(tǒng)的系統(tǒng)模型。2024-2-7148結(jié)構(gòu)範(fàn)本2024-2-7149結(jié)構(gòu)流程的層次結(jié)構(gòu)2024-2-7150其中,系統(tǒng)總體結(jié)構(gòu)關(guān)係圖(ACD)位於系統(tǒng)模型圖的最頂層。ACD定義了系統(tǒng)的組成,定義了各子系統(tǒng)引用和生成的資訊,建立了系統(tǒng)與系統(tǒng)運(yùn)行環(huán)境之間的資訊介面。系統(tǒng)分析員借助ACD的幫助定義各子系統(tǒng)的結(jié)構(gòu)流圖(AFD)。2024-2-71512.系統(tǒng)結(jié)構(gòu)規(guī)格說(shuō)明為滿足後續(xù)工作的需要,系統(tǒng)分析員必須準(zhǔn)確、詳細(xì)地說(shuō)明系統(tǒng)結(jié)構(gòu)、組成系統(tǒng)的各個(gè)子系統(tǒng)以及各子系統(tǒng)之間的資訊流和控制流。結(jié)構(gòu)圖規(guī)格說(shuō)明(ADS)描述子系統(tǒng)資訊以及子系統(tǒng)之間的控制流和資訊流資訊。系統(tǒng)範(fàn)本說(shuō)明書描述各子系統(tǒng)的功能、資訊處理的對(duì)象和結(jié)果以及與其他子系統(tǒng)的連接關(guān)係。系統(tǒng)結(jié)構(gòu)字典定義系統(tǒng)結(jié)構(gòu)圖中的每個(gè)資訊項(xiàng)。2024-2-71523.4.2系統(tǒng)建模和模擬一個(gè)系統(tǒng)一般採(cǎi)用交互方式實(shí)現(xiàn)系統(tǒng)與現(xiàn)實(shí)世界的資訊交流。系統(tǒng)通過(guò)硬體、軟體對(duì)現(xiàn)實(shí)世界的對(duì)象、事件和過(guò)程進(jìn)行管理和控制。為了減少在真實(shí)環(huán)境中試驗(yàn)的風(fēng)險(xiǎn)和代價(jià),人們?cè)谙到y(tǒng)分析和設(shè)計(jì)階段普遍採(cǎi)用系統(tǒng)建模和模擬技術(shù)。模型是現(xiàn)實(shí)系統(tǒng)的一種描述,是現(xiàn)實(shí)系統(tǒng)的抽象和簡(jiǎn)化。模型必須反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)和實(shí)際;模型必須由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成;模型必須反映這些元素之間的關(guān)係。2024-2-7153現(xiàn)實(shí)系統(tǒng)模型可分為物理模型和數(shù)學(xué)模型兩大類。物理模型由物理元素構(gòu)成,故稱形象模型。數(shù)學(xué)模型由數(shù)學(xué)符號(hào)、邏輯符號(hào)、數(shù)字、圖表、圖形等組成,故稱抽象模型。2024-2-7154用於現(xiàn)實(shí)系統(tǒng)模擬的模型必須遵循科學(xué)的社會(huì)規(guī)律,必須反映現(xiàn)實(shí)系統(tǒng)的本質(zhì),必須具有一定的精度。在此基礎(chǔ)上,還應(yīng)力求簡(jiǎn)單,儘量刪除某些不必要的細(xì)節(jié),如有可能儘量採(cǎi)用已有的模型,在實(shí)驗(yàn)過(guò)程中不斷修改和完善模型,使之更能反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)和特徵。2024-2-7155系統(tǒng)建模與模擬的主要步驟是:(1)分析問(wèn)題、確定模擬的目標(biāo)。(2)建立模型。(3)運(yùn)行模型並分析模型結(jié)果。(4)修改模型(如有必要)。(5)撰寫模擬文檔。2024-2-71563.5成本-效益分析成本-效益分析的目的是從經(jīng)濟(jì)角度評(píng)價(jià)開發(fā)一個(gè)新的軟體專案是否可行。成本-效益分析首先是估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然後與可能取得的效益進(jìn)行比較和權(quán)衡。2024-2-71571.成本估計(jì)一個(gè)軟體開發(fā)的成本主要表現(xiàn)在人力消耗。由於這種消耗估計(jì)不是精確的科學(xué)計(jì)算,因此可以用幾種方法計(jì)算後相互驗(yàn)證。首先可以用代碼行定量估算方法,把開發(fā)軟體中實(shí)現(xiàn)每一個(gè)功能所需要的源代碼行數(shù)與成本聯(lián)繫起來(lái)。其次可以用任務(wù)分解技術(shù)估算成本。2024-2-71582.貨幣的時(shí)間價(jià)值系統(tǒng)的經(jīng)濟(jì)效益是使用新系統(tǒng)增加的收入和節(jié)約的運(yùn)行費(fèi)用。而經(jīng)濟(jì)效益和運(yùn)行費(fèi)用在軟體生命週期中都存在,這就是說(shuō)經(jīng)濟(jì)效益與軟體的生命週期的長(zhǎng)度有關(guān)。所以應(yīng)該合理地估計(jì)軟體的壽命。2024-2-71593.投資回收期用投資回收期是衡量一個(gè)開發(fā)專案價(jià)值的常用方法。投資回收期就是累計(jì)收回的經(jīng)濟(jì)效益等同於最初投資費(fèi)用所需的時(shí)間。收回投資以後的經(jīng)濟(jì)效益就是利潤(rùn)。很明顯,投資回收期越短,獲得利潤(rùn)就越快,則該專案就越值得開發(fā)。4.純收入純收入就是在整個(gè)生命週期之內(nèi)的累計(jì)經(jīng)濟(jì)效益與投資之差。2024-2-71603.6可行性研究的文檔規(guī)格說(shuō)明書要按照如下原則進(jìn)行:(1)從實(shí)現(xiàn)中抽出功能度。(2)用面向過(guò)程的系統(tǒng)規(guī)格說(shuō)明語(yǔ)言。(3)規(guī)格說(shuō)明要圍繞整個(gè)系統(tǒng),軟體是其組成部分。(4)規(guī)格說(shuō)明書是一個(gè)可以認(rèn)知的模型。2024-2-7161(5)必須是局部化的和鬆散耦合的。(6)必須圍繞系統(tǒng)的操作環(huán)境。(7)必須是可以操作的。(8)允許系統(tǒng)的規(guī)格說(shuō)明書的不完整和可擴(kuò)充。2024-2-7162一個(gè)可行性研究報(bào)告的主要內(nèi)容如下:(1)引言:說(shuō)明編寫本文檔的目的,專案的名稱、背景,本文檔用到的專門術(shù)語(yǔ)和參考資料。(2)可行性研究前提:說(shuō)明開發(fā)專案的功能、性能和基本要求,達(dá)到的目標(biāo),各種限制條件,可行性研究方法和決定可行性的主要因素。2024-2-7163(3)對(duì)現(xiàn)行系統(tǒng)的分析:說(shuō)明現(xiàn)行系統(tǒng)的處理流程和數(shù)據(jù)流程、工作負(fù)荷、各項(xiàng)費(fèi)用支出、所需各類專業(yè)技術(shù)人員和數(shù)量、所需各種設(shè)備,現(xiàn)行系統(tǒng)存在什麼問(wèn)題。(4)所建議系統(tǒng)的技術(shù)可行性分析:對(duì)所建議系統(tǒng)的簡(jiǎn)要說(shuō)明,處理流程和數(shù)據(jù)流程,與現(xiàn)行系統(tǒng)比較的優(yōu)越性,採(cǎi)用所建議系統(tǒng)對(duì)用戶的影響,對(duì)各種設(shè)備、現(xiàn)有軟體、開發(fā)環(huán)境和運(yùn)行環(huán)境的影響,對(duì)經(jīng)費(fèi)支出的影響,對(duì)技術(shù)可行性的評(píng)價(jià)。2024-2-7164(5)所建議系統(tǒng)的經(jīng)濟(jì)可行性分析:說(shuō)明所建議系統(tǒng)的各種支出,各種效益,收益/投資比、投資回收週期。(6)社會(huì)因素可行性分析:說(shuō)明法律因素對(duì)合同責(zé)任、侵犯專利權(quán)和侵犯版權(quán)等問(wèn)題的分析,說(shuō)明用戶使用可行性是否滿足用戶行政管理、工作制度和人員素質(zhì)的要求。2024-2-7165(7)其他可供選擇方案:逐一說(shuō)明其他可供選擇的方案,並說(shuō)明未被推薦的理由。(8)結(jié)論意見:說(shuō)明專案是否能開發(fā),還需什麼條件才能開發(fā),對(duì)專案目標(biāo)有何變動(dòng)等。2024-2-71663.7專案開發(fā)計(jì)畫3.7.1方案選擇系統(tǒng)分析任務(wù)完成後,系統(tǒng)分析員開始研究問(wèn)題求解方案。由於系統(tǒng)開發(fā)成本又可劃分為研究成本、設(shè)計(jì)成本、設(shè)備成本、程式編碼成本、測(cè)試和評(píng)審成本、系統(tǒng)運(yùn)行和維護(hù)成本、系統(tǒng)退役成本等,因此在開發(fā)系統(tǒng)所用總成本不變的情況下,由於系統(tǒng)開發(fā)各階段所用成本分配方案的不同,也會(huì)對(duì)系統(tǒng)的功能和性能產(chǎn)生相當(dāng)大的影響。2024-2-71673.7.2制定專案開發(fā)計(jì)畫經(jīng)過(guò)可行性研究後,就得到一個(gè)專案是否值得開發(fā)的結(jié)論。如果可行,則接下來(lái)應(yīng)制定專案開發(fā)計(jì)畫。分析員應(yīng)當(dāng)進(jìn)一步為推薦的系統(tǒng)編寫一份開發(fā)計(jì)畫。軟體專案開發(fā)計(jì)畫是軟體工程中的一種管理性文檔。主要是對(duì)開發(fā)的軟體專案的費(fèi)用、時(shí)間、進(jìn)度、人員組織、硬體設(shè)備的配置、軟體開發(fā)環(huán)境和運(yùn)行環(huán)境的配置等進(jìn)行說(shuō)明和規(guī)劃,是專案管理人員對(duì)專案進(jìn)行管理的依據(jù),據(jù)此對(duì)專案的費(fèi)用、進(jìn)度和資源進(jìn)行控制和管理。2024-2-7168專案開發(fā)計(jì)畫是一個(gè)管理性文檔,它的主要內(nèi)容如下:(1)專案概述:說(shuō)明專案的各項(xiàng)主要工作;說(shuō)明軟體的功能、性能;為完成專案應(yīng)具備的條件;用戶及合同承包者承擔(dān)的工作、完成期限及其他條件限制;應(yīng)交付的程式名稱,所使用的語(yǔ)言及存儲(chǔ)形式;應(yīng)依附的文檔。3.1立項(xiàng)方法
立項(xiàng)的具體表現(xiàn)形式,就是在市場(chǎng)調(diào)查研究的基礎(chǔ)上,分析立項(xiàng)的必要性(是否有市場(chǎng)前景)和可能性(是否有能力實(shí)現(xiàn)),並具體列出系統(tǒng)的功能、性能、介面和運(yùn)行環(huán)境等方面的需求,當(dāng)前客戶群和潛在客戶群的情況,以及投入產(chǎn)出分析,然後再按照編寫參考指南書寫立項(xiàng)建議書,並對(duì)它進(jìn)行評(píng)審,評(píng)審?fù)ㄟ^(guò)後才算正式立項(xiàng)。169立項(xiàng)案例分析【例3-1】2003年初冬,煙臺(tái)市某軟體公司的老總在西安出差,發(fā)現(xiàn)西安市的大中型餐廳基本上都有電子點(diǎn)菜系統(tǒng),客人一點(diǎn)菜,資訊馬上出現(xiàn)在廚房大師傅眼前,大師傅馬上炒菜,小姐很快上菜。以後一打聽,這個(gè)點(diǎn)菜系統(tǒng)叫“餐飲系統(tǒng)”,是北京某軟體公司開發(fā)的。於是這位老總又飛到北京,不但拜訪“餐飲系統(tǒng)”的開發(fā)公司,而且到幾家餐飲大店去吃飯,親身體驗(yàn)“餐飲系統(tǒng)”的使用情況。返回?zé)熍_(tái)後,老總拍著腦袋決定馬上立項(xiàng),快速開發(fā)本公司的“餐飲系統(tǒng)”。170立項(xiàng)案例分析
不到三個(gè)月,“餐飲系統(tǒng)”開發(fā)完畢,但是在後來(lái)的兩年中,該系統(tǒng)在煙臺(tái)市總共也只賣出兩套,投入與產(chǎn)出比是五比一。這是為什麼?就是因?yàn)闊熍_(tái)是中等城市,不像北京、西安是大城市,“餐飲系統(tǒng)”的客戶群少得可憐。171立項(xiàng)方法
立項(xiàng)就是決策,IT企業(yè)的決策必須按照決策程式進(jìn)行。沒有決策程式就要先制定決策程式,不能一個(gè)人拍腦袋定決策。
立項(xiàng)建議書的目的,就是在某種程度上代替開發(fā)合同或用戶需求報(bào)告,作為軟體策劃的基礎(chǔ)。172立項(xiàng)方法
立項(xiàng)建議書的編制者一般不是軟體開發(fā)人員,而是軟體公司的市場(chǎng)銷售人員,因?yàn)樗麄儗?duì)市場(chǎng)行情及客戶需求熟悉,所以在此給出它的編寫參考指南,對(duì)市場(chǎng)銷售人員和軟體策劃人員都會(huì)有幫助。1733.2立項(xiàng)文檔
立項(xiàng)文檔就是《立項(xiàng)建議書》,文檔彙編中給出它的編寫參考指南。不要認(rèn)為它太死板、太複雜,需要仔細(xì)閱讀其格式和內(nèi)容,並不斷地問(wèn)“為什麼?”。只有這樣,才能增長(zhǎng)學(xué)問(wèn),使自己早日融入IT企業(yè)的軟體文化之中,使高校的軟體工程教育與IT企業(yè)的軟體文化平滑接軌。1743.3簽訂合同的方法與文檔【例3-2】西元2005年2月,珠海一家軟體公司(乙方)與珠海一家中藥網(wǎng)站公司(甲方),簽訂了一個(gè)“中藥網(wǎng)站開發(fā)合同”。該合同中的有關(guān)條款規(guī)定:“軟體開發(fā)費(fèi)用共計(jì)9萬(wàn)元人民幣,開發(fā)工期總共為一個(gè)月,即2月至3月”。並且還規(guī)定:“乙方若不按期交付專案,每拖延一天,甲方扣除乙方的軟體開發(fā)總費(fèi)用的1%”。請(qǐng)讀者分析一下,該合同有什麼問(wèn)題?後來(lái)的事實(shí)證明,該合同至少造成了如下幾個(gè)問(wèn)題:175簽訂合同的方法與文檔
開發(fā)工期太短,乙方肯定不能按時(shí)交付專案。開發(fā)費(fèi)用太低,乙方肯定不能獲利。至於“每拖延一天,甲方扣除乙方的軟體開發(fā)總費(fèi)用的1%”的約定,更是甲方懸在乙方頭上的一把曆箭。由此可見,正確而合理地簽訂軟體專案開發(fā)合同,對(duì)軟體企業(yè)是何等地重要!176簽訂合同的方法與文檔
任何有營(yíng)業(yè)執(zhí)照的軟體企業(yè),都有自己的合同文本格式。合同的文檔有兩份,一份是主文件,即合同正文。另一份是合同附件,即技術(shù)性的檔,它的格式和內(nèi)容,與立項(xiàng)建議書的主體部分基本相同。附件的內(nèi)容應(yīng)覆蓋系統(tǒng)的功能點(diǎn)列表、性能點(diǎn)列表、介面列表、資源需求列表、開發(fā)進(jìn)度列表等。177合同正文的主要內(nèi)容
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)法律培訓(xùn)法律顧問(wèn)聘用協(xié)議2篇
- 2025年度公司與自然人環(huán)境保護(hù)治理合作協(xié)議3篇
- 2025年度智能交通領(lǐng)域公司合作股權(quán)協(xié)議書模板3篇
- 農(nóng)村家庭房屋分割與農(nóng)村環(huán)境保護(hù)合作協(xié)議(2025年度)
- 二零二五年度茶葉電商平臺(tái)客戶服務(wù)合作協(xié)議3篇
- 二零二五年度養(yǎng)殖場(chǎng)養(yǎng)殖技術(shù)指導(dǎo)服務(wù)合同3篇
- 2025農(nóng)村回遷房買賣合同(含公共設(shè)施配套)
- 二零二五年度生態(tài)農(nóng)業(yè)示范園-鄉(xiāng)土樹種批量采購(gòu)合同
- 2025年公司年會(huì)場(chǎng)地租賃及布置服務(wù)合同3篇
- 2025年度農(nóng)產(chǎn)品冷鏈物流配送合同版3篇
- 生姜高產(chǎn)種植技術(shù)課件
- 鋼結(jié)構(gòu)工程實(shí)測(cè)實(shí)量
- 國(guó)開2023法律職業(yè)倫理-形考冊(cè)答案
- 醫(yī)院物業(yè)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 排水管網(wǎng)清淤疏通方案(技術(shù)方案)
- 什么是冠狀動(dòng)脈左主干狹窄心電圖的“6+2”現(xiàn)象
- 商丘市睢陽(yáng)牧原農(nóng)牧有限公司八場(chǎng)生豬養(yǎng)殖項(xiàng)目環(huán)境影響報(bào)告
- 油田用聚合物驅(qū)油劑相關(guān)知識(shí)
- 護(hù)理病例分析試題題庫(kù)
- 10kV及以下電力客戶受電工程中間檢查和竣工檢驗(yàn)規(guī)范試
- 領(lǐng)導(dǎo)干部實(shí)績(jī)報(bào)告表表樣
評(píng)論
0/150
提交評(píng)論