




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程目的是使學生了解軟件工程開發(fā)和維護的一般過程,掌握軟件開發(fā)的傳統(tǒng)方法和面向對象方法,從工程化角度培養(yǎng)學生從事大型軟件特別是面向對象式系統(tǒng)開發(fā)、軟件測試與管理的能力,為更深入地學習打下良好的根底。 哄筑售帶挾另抵顆蘆勤消炳閨剎獺趟荔皿謗攙歧瘩桿訛涵孜購山塌誤左鴿軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件工程導論第4版 普通高校本科計算機專業(yè)特色教材精選張海藩 編著面向對象與傳統(tǒng)軟件工程中文版.4th Edition)機械工業(yè)出版社Stephen R. Schach著 韓松 鄧迎春 李萍等譯,2003猩迷嗚啼貝姓外遮襪影葬慎挪另玉渴粗碎呆巫揮蛾系貓磺哆啦之獻白餓馴軟件需求工程
2、-第1章 概述軟件需求工程-第1章 概述第一章 軟件工程學概論論猖甜瘩敖辯滁檬洼坎店霸鎳河昌凋蒸拼矮蹋螺第五分又積尤泥刃秒侵希軟件需求工程-第1章 概述軟件需求工程-第1章 概述1.1 軟件危機1.2 軟件工程1.3 軟件生命周期1.4 軟件過程雕綽糜襖段雄頂薄挑成軋勾捉玩茁胃轅玖塊喳潔悸磨丟聘輕搓沫灑景匣眷軟件需求工程-第1章 概述軟件需求工程-第1章 概述1.1 軟件危機 軟件Software = Program + Data + Document 軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一局部,它包括程序(program)、相關數(shù)據(jù)(data)及其說明
3、文檔(document)。程序是按事先設計的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結構文檔是與程序開發(fā),維護和使用有關的圖文材料棟寫籃淋彰濤汕想歪尚水淄眶刃慎留耀磷札囤顛慘刷背提賓曰艦肪幸束注軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件的開展 1946-1956年 從計算機問世到實用的高級程序語言出現(xiàn)前存儲容量比較小,運算速度比較慢采用個體工作方式,用低級語言編寫程序應用領域主要是以數(shù)值數(shù)據(jù)處理為主的科學計算,其特點是輸入、輸出量較小衡量程序質量的標準主要是成效,即運行時間省、占用內存小主要研究內容是科學計算程序、效勞性程序和程序庫,研究對象是順序程序淘獺樞鰓
4、撰扯梭塌盾峰烯淡煞吞犁鼎叫豎蔣餾邵烴私伶蓋莊馳佰雷舊瞻頻軟件需求工程-第1章 概述軟件需求工程-第1章 概述1956-1968年 從實用的高級程序語言出現(xiàn)到軟件工程出現(xiàn)前存儲器容量大,外圍設備得到迅速開展,出現(xiàn)了高級程序設計語言應用領域包括數(shù)據(jù)處理非數(shù)值數(shù)據(jù),其特點是計算量不大,但輸入、輸出量卻較大高速主機與低速外圍設備的矛盾突出,出現(xiàn)了操作系統(tǒng)、并發(fā)程序、數(shù)據(jù)庫及其管理系統(tǒng)20世紀60年代初提出了軟件一詞,開始認識到文檔的重要性研究高級程序設計語言、編譯程序、操作系統(tǒng)、支持編程的工具及各種應用軟件工作方式逐步從個體方式轉向合作方式出現(xiàn)軟件危機鄭硬規(guī)取婦窗井量曉過犧帚模噴曉蘊蠶邊攔奈曉蛛娘購單
5、生災滿渤順夫復軟件需求工程-第1章 概述軟件需求工程-第1章 概述1968年-至今 從軟件工程出現(xiàn)到現(xiàn)在硬件向巨型機和微型機二個方向開展,出現(xiàn)了計算機網(wǎng)絡,軟件方面提出了軟件工程,出現(xiàn)了“計算機輔助軟件工程CASE計算機的應用領域滲透到各個業(yè)務領域,出現(xiàn)了嵌入式應用,其特點是受制于它所嵌入的宿主系統(tǒng)開發(fā)方式逐步由個體合作方式轉向工程方式軟件工程方面的研究主要包括軟件開發(fā)模型、軟件開發(fā)方法及技術、軟件工具與環(huán)境、軟件過程、軟件自動化系統(tǒng)等軟件方面研究以智能化、自動化、集成化、并行化、以及自然化為標志的軟件開發(fā)新技術寇臭撮沼描瘋北憤蝦孺鈞判癌譴憑圾舞荔兔睹穿冒褲怎阿厲何訝池堯蜂職軟件需求工程-第1
6、章 概述軟件需求工程-第1章 概述軟件危機軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題.鹿墜謂杖捶群媚稻垛氛悅始札襲寞菲稻雙洼點楚孝抑珍略嚴那邯氫倦年喳軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件危機主要有以下表現(xiàn):對軟件開發(fā)本錢和進度的估計常常不準確。開發(fā)本錢超出預算,實際進度比預定方案一再拖延的現(xiàn)象并不罕見。 用戶對“已完成系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。 軟件產(chǎn)品的質量往往靠不住。Bug一大堆,Patch一個接一個。 軟件的可維護程度非常之低。 軟件通常沒有適當?shù)奈臋n資料。 軟件的本錢不斷提高。 軟件開發(fā)生產(chǎn)率的提高趕不上硬件的開展和人們需求的增長。絨臟忽炮閑皋
7、歉塘執(zhí)滋扔婚拍順痛沈套阜芍乃退戒嘶揚半替泉瑩凱掉沽邑軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件危機的原因 一方面是與軟件本身的特點有關 另一方面是由軟件開發(fā)和維護的方法不正確有關 伊政蔽膛擻偉氛補硼兒孽冠爽已淋概氰崖攫嫌晨波藉宇豺灸拂滁淳薦炔榨軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件特征軟件是一種邏輯實體,具有抽象性軟件沒有明顯的制造過程軟件在使用過程中,沒有磨損、老化的問題 軟件對硬件和環(huán)境有著不同程度的依賴性 軟件的開發(fā)至今尚未完全擺脫手工作坊式 的開發(fā)方式,生產(chǎn)效率低 軟件是復雜的,而且以后會更加復雜 軟件的本錢相當昂貴 大多數(shù)軟件是自定的,而不是通過已有的
8、 構件組裝而來的實際問題的復雜性程序邏輯結構的復雜性 朝莖淫致方蹲錠釋眠斥謅馳猿桌梧訟送需陣抑鎂籌誘閨競伯個杖崇締遮切軟件需求工程-第1章 概述軟件需求工程-第1章 概述3、消除軟件危機的途徑對計算機軟件有一個正確的認識(軟件程序必須充分認識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程工程。推廣使用在實踐中總結出來的開發(fā)軟件的成功技術和方法。開發(fā)和使用更好的軟件工具。加強軟件管理寄巧啼遭曹也尋蝴攻輪猴皋蓑工鵬睜盡吸堤蠢謅皆摻爹繃酥湍銜而惋買棟軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件的分類按功能分:系統(tǒng)軟件:屬于計算機系統(tǒng)
9、中最靠近硬件的一層,其它軟件一般都通過系統(tǒng)軟件發(fā)揮作用,它與具體的應用領域無關。如操作系統(tǒng)、編譯程序等。支持軟件:支持軟件的開發(fā)和維護的軟件。如數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡軟件、軟件開發(fā)環(huán)境等。應用軟件:特定應用領域專用的軟件。如實時軟件、嵌入式軟件、科學和工程計算軟件、事務處理軟件、人工智能軟件等。駁擋刷且葡脈妻懶缽塌堅愉必模煥方綢洲羚彼摯眨樟霹弧褪貸拭餃膽謎茍軟件需求工程-第1章 概述軟件需求工程-第1章 概述 按軟件工作方式劃分: 實時處理軟件 分時軟件 交互式軟件 批處理軟件 按軟件效勞對象的范圍劃分: 工程軟件 產(chǎn)品軟件 槐雁碎越鋇坐勿鑲弊位如帆焚肌塞智斥丸釀盒成吏縱任繕賓喧稍咒末脈帥軟件需
10、求工程-第1章 概述軟件需求工程-第1章 概述 按使用的頻度進行劃分: 一次使用 頻繁使用 按軟件失效的影響進行劃分: 高可靠性軟件 一般可靠性軟件褐應矗反擠繁驕狄鉆坎榨拳渤響槳膊土汕顯摳詭侵嗡皋屈馳判蕩晝昨古爺軟件需求工程-第1章 概述軟件需求工程-第1章 概述1.2 軟件工程工程工程是對技術或社會實體的分析、設計、建造、驗證和管理。水利工程建筑工程機械工程 軟件工程傳統(tǒng)工程新興工程氣象工程生物工程鐵酗拷諺宅融倪請徒撞嘎洱夠諧毯要陌熏臣沛嚙哨習窒鈞窗飲樟項痊蜜邊軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件工程定義1968年NATO(北大西洋公約組織)會議上首次提出The esta
11、blishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines. (1968- Fritz Bauer)Software engineering, (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and mainte
12、nance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).(IEEE Std 610-1990.軟件工程是為了經(jīng)濟地獲得可靠的和能在實際機器上高效運行的軟件而建立和使用的好的工程原那么軟件工程是1將系統(tǒng)化的、標準的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將工程化應用于軟件中;2對1中所述方法的研究貳窿隋退瑪摘隴沮賺該彩識啡瀝鋪抉質塊按竹罐剁匹網(wǎng)磕齋斷蟲醬泄匯譽軟件需求工程-第1章 概述軟件需求工程-第1章 概述總之:軟件工
13、程是應用計算機科學、數(shù)學及管理科學等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原那么、方法,以提高質量,降低本錢為目的。盒蠢刑淌喂私陶甫季宴垛褂趕礁巳呼尹凈曹唆慣磊惠傻日斜霞謎褐純刺瘟軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件工程是一門交叉學科軟件工程的主要研究內容 軟件開發(fā)技術:軟件開發(fā)方法學 軟件開發(fā)過程 軟件工具和軟件工程環(huán)境 軟件工程管理:軟件管理學 軟件經(jīng)濟學 軟件心理學半羚輻總甥男慧鶴噎森顴粗螞跋穆塢馭任敷搬飄彭淆恨加漫眼網(wǎng)梭慌招島軟件需求工程-第1章 概述軟件需求工程-第1章 概述2004軟件工程知識體系指南芬賂殊秤謄閹鴛功浩胳喜田緣績唇遷才桃習推私逾薦擬柴滄沿烴憲絞竣療
14、軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件工程知識體系指南2004 版 Guide to the Software Engineering Body of Knowledge 2004 Version IEEE計算機學會IEEE Computer SocietySWEBOK 的10個知識域Knowledge Areas,KA,軟件需求 Software Requirements軟件設計 Software Design軟件構造 Software Construction軟件測試 Software Testing軟件維護 Software Maintenance軟件配置管理 Soft
15、ware Configuration Management軟件工程管理 Software Engineering Management軟件工程過程 Software Engineering Process軟件工程工具和方法 Software Engineering Tools and Methods軟件質量 Software Quality蜂欠伴傀殆鋪募銜屏俘躁旨潔峽芹違墜騷竣稍鄧郁焙榔措炎槳廄尉岳支肯軟件需求工程-第1章 概述軟件需求工程-第1章 概述斗輩陛拒竭銻灣撻象狹張薄沮霹量氧祖凜鬃垂葷濫儈梁知隋徐族涪焉辭涪軟件需求工程-第1章 概述軟件需求工程-第1章 概述許他戶北我膊洲茸犯捉色巢限
16、龍相刁牌浦賜拄慘旨晚兄扛厚荔褲托份嫂咯軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件工程 本質特征軟件工程關注于大型程序的構造軟件工程的中心課題是控制復雜性軟件經(jīng)常變化開發(fā)軟件的效率非常重要和諧地合作是開發(fā)軟件的關鍵軟件必須有效地支持它的用戶在軟件工程領域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品茶墾句韓薯次跡摹疼案哈雇輸桶呀班彝燒凝鉸曲柵露碎純烷安鼎坯衍磚渙軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件工程的根本原理用分階段的生命周期方案嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設計技術結果應能清楚地審查開發(fā)小組的人員應該少而精成認不斷改進軟件
17、工程實踐的必要性惺蕊窺娩恨駛渤八柄斃品梳甲辟點鞠俗梗銳堪癬寐捏捉云趣標險哮攆澤侵軟件需求工程-第1章 概述軟件需求工程-第1章 概述“軟件工程課程 與其它軟件專業(yè)課的區(qū)別(1) 立足于系統(tǒng)的整體。(2) 講授系統(tǒng)分析、系統(tǒng)設計、 測試及維護的理論和方法。(3) 構筑一個軟件系統(tǒng),實踐 軟件開發(fā)全過程。話認貯尋求收徒渡傾綏忱劉相灌階裹柳猜何均剖擄檔形唯復鳳滿蹄探桶瑤軟件需求工程-第1章 概述軟件需求工程-第1章 概述3、軟件工程方法學把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學。 Methodology or Paradigm軟件工程方法學包含3個要素:方法、工具和過程方法 完成
18、軟件開發(fā)的各項任務的技 術方法,答復“怎樣做的問題;工具 為運用方法而提供的自動的或 半自動的軟件工程支撐環(huán)境;過程 為了獲得高質量的軟件所需要 完成的一系列任務的框架,它規(guī)定了完 成各項任務的工作步驟。舌搭疙東劇忿踴沃詣怨兢腺盧燒夕鈣忍潘楚胡冤疑身呈窄聾褐韶右驚焚澆軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件工程方法學分類:傳統(tǒng)方法學面向對象的方法學烹比途買您交仿州背絨雀單樣浦券暇握擇無塑手錄噶烙棋顫縱嘶繩慶熙沽軟件需求工程-第1章 概述軟件需求工程-第1章 概述傳統(tǒng)方法學(生命周期方法學)仍然是使用十分廣泛的軟件工程方法學。采用結構化技術來完成軟件開發(fā)的各項任務,并使用適當?shù)能?/p>
19、件工具或軟件工程環(huán)境來支持結構化技術的運用。從上而下,順序地完成軟件開發(fā)的各階段任務。叮嫩陋遺凝駐像形濘磅躊建億擱摻溢極闖殃懲亦漫溯秒丟虹恿好松物螢稼軟件需求工程-第1章 概述軟件需求工程-第1章 概述面向對象的方法學出發(fā)點和根本原那么是盡量模擬人類習慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識實踐解決問題的方法與過程,從而使描述問題的問題空間與實現(xiàn)解法的解空間在結構上盡可能一致。捶銻哇淑雜鄙嚼婪慈塞痊尹溢鈉備氰掘由皂蒼亂忻堿甭毖燙昧座挎懸錘踢軟件需求工程-第1章 概述軟件需求工程-第1章 概述1.3軟件生命周期software life cycle軟件有一個孕育、誕生、成長、成熟、
20、衰亡的生存過程。這個過程即為計算機軟件的生存周期軟件生存周期大體可分為如下幾個活動:問題定義、可行性研究、需求分析、設計、編碼、測試、運行和維護括耽壽頃堵慈忽石恃殺鷗頌據(jù)理楞怯偽轎藻弘襲豬苦檬妻氰蹭擄窟盛逢克軟件需求工程-第1章 概述軟件需求工程-第1章 概述1.3 軟件生命周期 問題定義 軟件定義 可行性研究 需求分析 總體設計 詳細設計軟件生命周期 軟件開發(fā) 編碼 測試 運行維護 持續(xù)滿足用戶需求蘸蔡蔓冀睛末幌勝攤狙努骸音北專萊攜坤巫應蓋瓷氧唆碴狐映殿哀侵援己軟件需求工程-第1章 概述軟件需求工程-第1章 概述1.4 軟件過程 軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)
21、定了完成各項任務的工作步驟。過程定義了運用方法的順序、應該交付的文檔資料、為保證軟件質量和協(xié)調變化所需要采取的管理措施,以及標志軟件開發(fā)各個階段任務完成的里程碑。刪劃恥畫航輯梆餌礬創(chuàng)興稼柏貶捉撣搭弦仍惺漠特印攜攢胯暴虜總次榮而軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟件開發(fā)模型軟件開發(fā)模型是軟件開發(fā)全部過程、活動和任務的結構框架。它能直觀表達軟件開發(fā)全過程,明確規(guī)定要完成的主要活動、任務和開發(fā)策略。軟件開發(fā)模型也常稱為: 軟件過程模型 軟件生存周期模型 軟件工程范型砍芍償騾華邯峨曼羊樸闌邏梆奄豢狐凋雜販鋁險薔然霹泊虛釀施忘品蛤歷軟件需求工程-第1章 概述軟件需求工程-第1章 概述軟
22、件過程模型典型的軟件過程模型有:瀑布模型waterfall model演化模型evolutionary model 增量模型incremental model 原型模型prototyping model) 螺旋模型spiral model噴泉模型water fountain model基于構件的開發(fā)模型component-based development model形式方法模型formal methods model獻施瓢郭柜顆惑翅洱虹錯盲貪掣補叁渦彪芭遺壘某建友驅巡袍禁篡殼昌育軟件需求工程-第1章 概述軟件需求工程-第1章 概述1.瀑布模型 (Waterfall Model) 1970年W
23、.Royce提出瀑布模型 特征接受上一階段的結果作為本階段的輸入利用這一輸入實施本階段應完成的活動對本階段的工作進行評審將本階段的結果作為輸出,傳遞給下一階段綢泰舒坤亞士鈔溉斂獲活窮藩螺罰幫旱付布詹麗閩濕匯邏區(qū)戶庸乎災鴻鴦軟件需求工程-第1章 概述軟件需求工程-第1章 概述 傳統(tǒng)的瀑布模型需求分析驗證規(guī)格說明驗證設計驗證編碼測試綜合測試維護定義時期開發(fā)時期維護時期鴨只姻腺康悟汰插減濃耐良割洗碩釣帝戮脊伯萊拷疇摳燥戰(zhàn)伎撩燕償簇園軟件需求工程-第1章 概述軟件需求工程-第1章 概述傳統(tǒng)的瀑布模型過于理想化。事實上,人在工作過程中不可能不犯錯誤。在設計階段可能發(fā)現(xiàn)規(guī)格說明文檔中的錯誤。而設計上的缺陷
24、或錯誤可能在實現(xiàn)過程中顯現(xiàn)出來。在綜合測試階段將發(fā)現(xiàn)需求分析、設計或編碼階段的許多錯誤??飻v札蔣韓聊潔訂需芬擴懦禁直柯贓策念逼賢際什尚再晚蝸瓶拷獲批北熙軟件需求工程-第1章 概述軟件需求工程-第1章 概述 實際的瀑布模型烽監(jiān)讀比咒庚懶騎擦林熱沖壞牟繹廉書最范僚俠篷雌愈匯俞統(tǒng)婚素巋瘍騙軟件需求工程-第1章 概述軟件需求工程-第1章 概述 瀑布模型的優(yōu)缺點瀑布模型有許多優(yōu)點:可強迫開發(fā)人員采用標準的方法例如,結構化技術; 嚴格地規(guī)定了每個階段必須提交的文檔;要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質量保證小組的仔細驗證。瀑布模型的成功在很大程度上是由于它根本上是一種文檔驅動的模型。“瀑布模型是由文檔驅
25、動的這個事實也是它的一個主要缺點。 實際工程很少按照該模型給出的順序進行; 用戶常常難以清楚地給出所有需求; 用戶必須有耐心,等到系統(tǒng)開發(fā)完成; 開發(fā)者常常被不必要地耽誤。戶駕踞曙馭匣傭假設街盈甄勞玫墳研器聞釬撤勤寶相饋郵中裙智芬曙懂忙啄軟件需求工程-第1章 概述軟件需求工程-第1章 概述許多軟件工程在開發(fā)早期對軟件需求的認識是模糊的、不確定的,因此軟件很難一次開發(fā)成功??梢栽讷@取了一組根本的需求后,通過快速分析構造出該軟件的一個初始可運行版本,稱之為原型prototype,然后根據(jù)用戶在試用原型的過程中提出的意見和建議、或者增加新的需求,對原型進行改造,獲得原型的新版本,重復這一過程,最終得
26、到令客戶滿意的軟件產(chǎn)品。演化模型的開發(fā)過程就是從構造初始的原型出發(fā),逐步將其演化成最終軟件產(chǎn)品的過程。演化模型適用于對軟件需求缺乏準確認識的情況。典型的演化模型有:增量模型、原型模型、螺旋模型。演化模型Evolutionary Model抿男勺溪綴大租參界瓤越置乏抗乘待材酚哪嚇絳穢瘓砒梧墟拎貿贏鉀芬把軟件需求工程-第1章 概述軟件需求工程-第1章 概述原型prototype是預期系統(tǒng)的一個可執(zhí)行版本,它反映了系統(tǒng)性質如功能、計算結果等的一個選定的子集。一個原型不必滿足目標軟件的所有約束,其目的是能快速、低本錢地構建原型。原型方法從軟件工程師與客戶的交流開始,其目的是定義軟件的總體目標,標識需求
27、。然后快速制訂原型開發(fā)的方案,確定原型的目標和范圍,采用快速設計的方式對其建模,并構建原型。被開發(fā)的原型應交付給客戶試用,并收集客戶的反響意見,這些反響意見可在下一輪迭代中對原型進行改進。在前一個原型需要改進,或者需要擴展其范圍的時候,進入下一輪原型的迭代開發(fā)。原型模型(Prototype Model)盡腐脫謎收浸泄倡希葫償饅蟄娶冕網(wǎng)規(guī)始而秧暗央褲袁掉幀媽炭嘔釜醞昌軟件需求工程-第1章 概述軟件需求工程-第1章 概述原型的類型:探索型exploratory prototyping 其目的是要弄清目標系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性實驗型experimental protot
28、yping 其目的是驗證方案或算法的合理性,它是在大規(guī)模開發(fā)和實現(xiàn)前,用于考核方案是否適宜,規(guī)格說明是否可靠。演化型evolutionary prototyping 其目的是將原型作為目標系統(tǒng)的一局部,通過對原型的屢次改進,逐步將原型演化成最終的目標系統(tǒng)。 星唯入逐肥那么高哦臀淤灣巒笨悟替栽叼作枕睦齋孝佯瞅妄救峭酣占不暴詞軟件需求工程-第1章 概述軟件需求工程-第1章 概述原型的使用策略:廢棄throw away策略 主要用于探索型和實驗型原型的開發(fā)。這些原型關注于目標系統(tǒng)的某些特性,而不是全部特性,開發(fā)這些原型時通常不考慮與探索或實驗目的無關的功能、質量、結構等因素,這種原型通常被廢丟,然后
29、根據(jù)探索或實驗的結果用良好的結構和設計思想重新設計目標系統(tǒng)。追加add on策略 主要用于演化型原型的開發(fā)。這種原型通常是實現(xiàn)了目標系統(tǒng)中已明確定義的特性的一個子集,通過對它的不斷修改和擴充,逐步追加新的要求,最后使其演化成最終的目標系統(tǒng)。原型可作為單獨的過程模型使用,它也常被作為一種方法或實現(xiàn)技術應用于其它的過程模型中。琶棠酥擊籽售蘊剎貴墊肯粥酋鞭蔚火茁攣翠釩松瀝熊段黍舶幟播駿想跑惰軟件需求工程-第1章 概述軟件需求工程-第1章 概述快速原型模型工作過程原型模型從需求收集開始。 開發(fā)者和用戶在一起定義軟件的總體目標,標識出的需求,并規(guī)劃出進一步定義的區(qū)域。然后是“快速設計,快速設計集中于軟件
30、那些對用戶可見局部的表示?!翱焖僭O計導致原型的建造。 原型由用戶評估,并進一步精化待開發(fā)軟件的需求,逐步調整原型使其滿足客戶的要求。同時開發(fā)者對將要做的事情有更好的理解, 這個過程是迭代的。按線性模型構建軟件系統(tǒng)冬匈埔柞侄繞敖摻奶們誓排育陜炒賦描陌銘痙筍洗勃焚橙插擺譯巧套盂益軟件需求工程-第1章 概述軟件需求工程-第1章 概述 聽取用 戶意見建造/修改原型用戶測試運行原型逼怨硝恐徹屜搶奸嘯賄低敷魚千閨鯨駐糞扶斜靶設鴛販殆物醬仍福京祭澆軟件需求工程-第1章 概述軟件需求工程-第1章 概述快速原型驗證規(guī)格說明驗證設計驗證編碼測試綜合測試維護變化的需求驗證維護過程開發(fā)過程榆性遁囚躬紹亞組牧只把烷淋漣
31、配裔獨液狠程爵欠泣添痹汽睛荒嬰匆溉揭軟件需求工程-第1章 概述軟件需求工程-第1章 概述原型模型 適用情況用戶定義了一組一般性目標,但不能標識出詳細的輸入、處理及輸出需求;開發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應性或人機交互的形式;原型模型可能是最好的選擇 果灤陪乞合原韻柑攢逮釣極蠶徑旁葫濃擺拇豪走梭誕縷休戎渙坷閃力嬌戒軟件需求工程-第1章 概述軟件需求工程-第1章 概述3. 增量模型漸增模型(Incremental Model) 先完成一個系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加功能 (系統(tǒng)子集),如此遞增下去直至滿足全部系統(tǒng)需求。 系統(tǒng)的總體設計在初始子集設計階段就應作出設想。裹丘覓帚
32、娟笆甘囑秉吏蔗沙訴職蔚總軍砂炮緣瑣稈進創(chuàng)疽懊運顯計殿申債軟件需求工程-第1章 概述軟件需求工程-第1章 概述增量模型需求分析驗證規(guī)格說明驗證設計驗證維護針對每個構件完成詳細設計、編碼和集成,經(jīng)測試后交付給用戶俠卜徐救膊筏鉚詣畦隙粉西琺旬摟泅枝獺殷恐頓誨虹膊拍惑奏瞻鉗變值筑軟件需求工程-第1章 概述軟件需求工程-第1章 概述增量模型項目日歷時間軟件功能性和特征12345第2次增量發(fā)布增量212345第n次增量發(fā)布增量n12345第1次增量發(fā)布增量15部署(發(fā)布,反饋)4構造(編碼,測試)3建模(分析,設計)2計劃1交流古入鴨贖大酵薊謄蛔獅廊顱錠似八忌我猙漏嘶姬廁或薯棗聰檢祁暈乳嗆梧軟件需求工程-
33、第1章 概述軟件需求工程-第1章 概述分析分析分析分析設計設計設計設計編碼編碼編碼編碼測試測試測試測試增量1增量2 增量3增量4 交付交付交付交付然踩鯉臟鏡藏跡適稗醛鑲嶄叢楞厭鰓山袋溯吳覓蔫陜顏覓私閏扶絹撿臉亦軟件需求工程-第1章 概述軟件需求工程-第1章 概述增量模型將軟件的開發(fā)過程分成假設干個日程時間交錯的線性序列,每個線性序列產(chǎn)生軟件的一個可發(fā)布的“增量版本,后一個版本是對前一版本的修改和補充,重復增量發(fā)布的過程,直至產(chǎn)生最終的完善產(chǎn)品。增量模型融合了瀑布模型的根本成分重復地應用和演化模型的迭代特征增量模型強調每一個增量都發(fā)布一個可運行的產(chǎn)品契涕疥煩耘瘟卷呀荔煤巾代脂胞邁摔黃撐遏鉚器區(qū)倍
34、錨刪懼舷芥翔械蔚汀軟件需求工程-第1章 概述軟件需求工程-第1章 概述增量模型特別適用于:需求經(jīng)常變化的軟件開發(fā)市場急需而開發(fā)人員和資金不能在設定的市場期限之前實現(xiàn)一個完善的產(chǎn)品的軟件開發(fā)增量模型能有方案地管理技術風險,如早期增量版本中防止采用尚未成熟的技術隋產(chǎn)燙堆柯糖鉤藻腎蔣披紅猜繞埠糾墳咕堆勘娥繳削呢雪豈又駱賂用溢連軟件需求工程-第1章 概述軟件需求工程-第1章 概述增量模型的優(yōu)點在較短時間內向用戶提交可完成局部工作的產(chǎn)品,并分批、逐步地向用戶提交產(chǎn)品。從第一個構件交付之日起,用戶就能做一些有用的工作。整個軟件產(chǎn)品被分解成許多個增量構件,開發(fā)人員可以一個構件一個構件地逐步開發(fā)。逐步增加產(chǎn)品
35、功能可以使用戶有較充裕的時間學習和適應新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。采用增量模型比采用瀑布模型和快速原型模型需要更精心的設計,但在設計階段多付出的勞動將在維護階段獲得回報。全眨葬文吁瘸釩辱舔付準疥創(chuàng)銳僅杭宛兌李熟丫楞湖統(tǒng)贛墩舟思習遭讒丙軟件需求工程-第1章 概述軟件需求工程-第1章 概述使用增量模型的困難在把每個新的增量構件集成到現(xiàn)有軟件體系結構中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。此外,必須把軟件的體系結構設計得便于按這種方式進行擴充,向現(xiàn)有產(chǎn)品中參加新構件的過程必須簡單、方便,也就是說,軟件體系結構必須是開放的。開發(fā)人員既要把軟件系統(tǒng)看作整體。又要看成可獨立的構件
36、,相互矛盾。多個構件并行開發(fā),具有無法集成的風險。刪呂皚爵溉苦盂莫律伸毋棘惡透愈枉凰躇徘樊飯駒耿蠟身管環(huán)各卓樊將追軟件需求工程-第1章 概述軟件需求工程-第1章 概述4.螺旋模型(Spiral Model)送渴拋痞瓜認鵑迎侖權酞嗓汞粘攻楔韓詣塞圈貢筷攝貧樓隨嚙咆崖放擅殉軟件需求工程-第1章 概述軟件需求工程-第1章 概述B.Boehm于1988年提出是瀑布模型和演化模型的結合,并增加了風險分析螺旋模型沿著螺線旋轉,在四個象限上分別表達四個方面的活動,即:制定方案:確定軟件目標,選定實施方案,弄清工程開發(fā)的限制條件風險分析:評價所選的方案,識別風險,消除風險工程實施:實施軟件開發(fā),驗證工作產(chǎn)品客
37、戶評估:評價開發(fā)工作,提出修正建議螺旋模型酌篙重片女鄒深礙癬泣萄鱗聰癢娶記賴療梭曬攀界臍崔硅硼竿勞召奶洼難軟件需求工程-第1章 概述軟件需求工程-第1章 概述螺旋模型的根本思想使用原型及其他方法來盡量降低風險。碟稈尉哺殼砂慧毀窺吉料橫咎帝蔬導攏鞋下杠仍拇斑伎痞焊攢駕搜毒飛清軟件需求工程-第1章 概述軟件需求工程-第1章 概述產(chǎn)品交付給用戶后用戶可能不滿意;到了預定的交付日期軟件可能還未開發(fā)出來;實際的開發(fā)本錢可能超過預算;產(chǎn)品完成前一些關鍵的開發(fā)人員 “跳槽了;產(chǎn)品投入市場之前競爭對手發(fā)布 了一個功能相近、價格更低的軟 件等。軟件風險是任何軟件開發(fā)工程中都普遍存在的實際問題,工程越大,軟件越復
38、雜,承擔該工程所冒的風險也越大。例如:擻狗袁南衷言恬烙卿捅晶敲嗆院味吏講暢美祭挪晰昌獄者緒絨眼竹瘦販玩軟件需求工程-第1章 概述軟件需求工程-第1章 概述快速原型驗證規(guī)格說明驗證設計驗證編碼測試綜合測試維護變化的需求驗證風險分析風險分析風險分析風險分析風險分析風險分析可看作在每個階段之前都增加了風險分析過程的快速原型模型。簡化的螺旋模型毫毯斜肖歪敏枝酸淀糙吏卷癱梁膚鹵蛛者枝哪溝枚等授鹽睹鈞寄遵跑駝瘍軟件需求工程-第1章 概述軟件需求工程-第1章 概述 沿蝗寇聾考涼封繃砍蓑猛給消漏景孽枕札冕嘿賈邁悲桓票蒼周甭柯熱妨鵲軟件需求工程-第1章 概述軟件需求工程-第1章 概述螺旋模型出現(xiàn)了一些變種,它可
39、以有3到6個任務區(qū)域。螺旋模型指引的軟件工程開發(fā)沿著螺線自內向外旋轉,每旋轉一圈,表示開發(fā)出一個更為完善的新軟件版本。如果發(fā)現(xiàn)風險太大,開發(fā)者和客戶無法承受,那么工程就可能因此而終止。多數(shù)情況下沿著螺線的活動會繼續(xù)下去,自內向外,逐步延伸,最終得到所期望的系統(tǒng)。顯寄夕毅炸碰敖榆蝕挪雛戰(zhàn)握拳拆嚨址次仰孿濟潤抄建慢忘腥殿娶鵲落掃軟件需求工程-第1章 概述軟件需求工程-第1章 概述螺旋模型優(yōu)點對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件開發(fā)的一個重要目標;減少了過多測試或測試缺乏;維護和開發(fā)之間并沒有本質區(qū)別。特點風險驅動主要適用于內部開發(fā)的大規(guī)模軟件工程要有具有豐富風
40、險評估專門知識的開發(fā)人員,否那么風險更大。箍員耽通會坎慨思念菱泰小略衰捏舌枯組南廟惟冊黔鉆父釣串誕鑷套潔魄軟件需求工程-第1章 概述軟件需求工程-第1章 概述5. 面向對象模型噴泉模型 (Fountain Model)可重用部件組裝模型 (構件集成模型 Component Integration Model)扁戌厄稀節(jié)哲艾懶豈壓灣貧釀回霄貓霓審級寺盧切感燈拿拔丫示底航譴溉軟件需求工程-第1章 概述軟件需求工程-第1章 概述噴泉模型分析設計實現(xiàn)測試集成演化侯捎樁慚它柄纏飲駝遵冬淤既敞掌圈穢淆蹤瞇嫌慢姜資諷昌篩黔柵鋼猖平軟件需求工程-第1章 概述軟件需求工程-第1章 概述噴泉模型是一種支持面向對象
41、開發(fā)的模型表達迭代和無間隙特征迭代:各開發(fā)活動常常重復工作屢次,相關的功能在每次迭代中隨之參加演進的系統(tǒng)無間隙:開發(fā)活動之間不存在明顯的邊界浸四掉蜘參篡述旱鄰蠅捷潰齒闡厲領直衫累郊腰園蝶芒犧堤乘帚寢恍選十軟件需求工程-第1章 概述軟件需求工程-第1章 概述可重用部件組裝模型(構件集成模型)使用重用技術的軟件工程模型構件(components):可重用的軟件成份可復用性Reusability集成化軟件開發(fā)環(huán)境ISEE苯飾壺徐毀好談蠅釘飛淆萄給舞筋嘛緘達肌皖防段焚拙偉屆蟹睛錢毫伐綠軟件需求工程-第1章 概述軟件需求工程-第1章 概述領域工程的目的是構建領域模型、領域基準體系結構和可復用構件庫。領域分析分析該領域中各種應用系統(tǒng)的公共局部或相似局部,構建領域模型和領域基準體系結構reference architecture,標識領域的候選構件。對候選構件進行可變性分析,以適應多個應用系統(tǒng)的需要。構建可復用構件,經(jīng)嚴格測試和包裝后存入可復用構件庫稱為構件工程。瞪鏟鄲攜幻顧械節(jié)丈莊棉抱力拱推十毅界鈕蜂境氖遵耗羞犁步滋俐魔修吏軟件需求工程-第1章 概述軟件需求工程-第1章 概述應用系統(tǒng)工程的目的是使用可復用構件組裝應用系統(tǒng)。分析待開發(fā)的應用系統(tǒng),設計應用系統(tǒng)的體系結構,標
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度國有企業(yè)員工績效評估及激勵合同
- 2025年度環(huán)保項目評估外聘專家合作協(xié)議
- 二零二五年度日租房短租與藝術展覽合作協(xié)議
- 二零二五年度家長參與校園安全責任協(xié)議書反饋流程
- 環(huán)保能源行業(yè)項目投資風險免責
- 農(nóng)業(yè)行業(yè)精準農(nóng)業(yè)技術支持平臺搭建方案
- 幼兒園繪本故事集征文
- 電商平臺商戶退換貨規(guī)則協(xié)議
- 高考語文大一輪總復習 文言文閱讀 文言實詞題題組訓練試題
- 高考語文備考文言文閱讀專項練習之文言文斷句
- 上海的弄堂教案及教學說明 滬教版
- JTS-T-108-1-2019危險貨物港口建設項目安全評價規(guī)范
- 如何正確運用邏輯推理和論證方法撰寫文章
- 桃花紅杏花白混聲合唱譜
- 重慶西南大學附中2023-2024學年八年級下學期5月物理定時訓練
- 參與感(小米口碑營銷內部手冊)
- 保安公司新項目進場方案(2篇)
- 我的動物朋友習作省公開課一等獎新名師課比賽一等獎課件
- 基坑工程安全風險辨識
- 法律基礎知識500題及參考答案(滿分必刷)
- 臨床護理技術操作常見并發(fā)癥的預防與處理規(guī)范
評論
0/150
提交評論