




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