SE4 軟件需求工程基礎(chǔ)_第1頁
SE4 軟件需求工程基礎(chǔ)_第2頁
SE4 軟件需求工程基礎(chǔ)_第3頁
SE4 軟件需求工程基礎(chǔ)_第4頁
SE4 軟件需求工程基礎(chǔ)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件需求工程基礎(chǔ)毛新軍國防科技大學(xué)計(jì)算機(jī)學(xué)院xjmao@軟件工程內(nèi)容軟件需求和需求工程軟件需求概念和類別、地位和作用需求工程的任務(wù)、過程和方法學(xué)軟件需求的建模和分析方法結(jié)構(gòu)化軟件需求分析方法面向?qū)ο蟮男枨蠓治龇椒ㄐ枨蠊こ痰妮敵龊驮u審輸出制品、需求缺陷和需求評審軟件需求變更及管理1.1軟件開發(fā)的本質(zhì)(1/2)領(lǐng)域相關(guān)技術(shù)相關(guān)融合需求和技術(shù)期望和要求解決方案軟件利益相關(guān)方軟件工程師軟件產(chǎn)品軟件工程師軟件開發(fā)的本質(zhì)(2/2)軟件工程師用戶要求軟件系統(tǒng)開發(fā)軟件系統(tǒng)的前提是要明確用戶的期望和要求,即軟件需求軟件需求文檔、模型、程序、數(shù)據(jù)軟件工程過程、方法學(xué)和工具1.2軟件系統(tǒng)的利益相關(guān)方何為利益相關(guān)方(stakeholder)從軟件系統(tǒng)中受益或與軟件系統(tǒng)相關(guān)的人、組織或者系統(tǒng)受益:使用、獲益、盈利相關(guān):發(fā)生操作和交互、存在關(guān)聯(lián)性軟件利益相關(guān)方的表現(xiàn)形式:人、組織或者系統(tǒng)人-用戶(User):最終使用軟件的人人-客戶(Customer):從中獲取利益的組織人-開發(fā)者(Developer):負(fù)責(zé)開發(fā)軟件系統(tǒng)的人系統(tǒng)(System):與待開發(fā)系統(tǒng)進(jìn)行交互的系統(tǒng)組織(Organization):提出系統(tǒng)開發(fā)和使用軟件的機(jī)構(gòu)為什么開發(fā)者也可提出軟件需求軟件案例:空巢老人看護(hù)系統(tǒng)軟件密集型信息系統(tǒng),通過軟件連接和控制機(jī)器人和智能手機(jī),對家中獨(dú)居的老人進(jìn)行看護(hù)跟蹤老人在家情況老人與遠(yuǎn)端的家屬進(jìn)行語音和視頻交互發(fā)現(xiàn)和通告異常情況(如摔倒、突發(fā)疾?。⒗先嗽诩覡顩r(如圖像和視頻)和異常信息傳送到遠(yuǎn)端家屬或醫(yī)生的智能手機(jī)上通過語音進(jìn)行呼叫和報(bào)警提醒老人按時(shí)服藥和保健......移動(dòng)互聯(lián)網(wǎng)語音和視頻交互監(jiān)視視頻和語音視頻和語音數(shù)據(jù)示例:空巢老人看護(hù)軟件的利益相關(guān)方用戶老人-用戶家屬-用戶醫(yī)生-用戶客戶投資方系統(tǒng)機(jī)器人移動(dòng)互聯(lián)網(wǎng)語音和視頻交互監(jiān)視視頻和語音視頻和語音數(shù)據(jù)示例:Mini-12306軟件的利益相關(guān)方旅客需要購票、退票、改簽等功能售票員幫助旅客提供購票、退票、改簽等服務(wù)系統(tǒng)管理員設(shè)置系統(tǒng)的配置信息等軟件系統(tǒng)及其利益相關(guān)方軟件系統(tǒng)人:用戶,客戶,開發(fā)者其他系統(tǒng)組織提出要求提出要求提出要求軟件利益相關(guān)方會(huì)站在自身的角度對軟件系統(tǒng)提出要求–軟件需求1.3何為軟件需求(SoftwareRequirement)?定義1(從軟件利益相關(guān)方的角度):軟件系統(tǒng)的利益相關(guān)方對軟件系統(tǒng)的功能和質(zhì)量,以及軟件運(yùn)行環(huán)境、交付進(jìn)度等方面提出的期望和要求定義2(軟件本身的角度):軟件需求是指軟件用于解決現(xiàn)實(shí)世界問題時(shí)所表現(xiàn)出的功能和性能等方面的要求軟件需求刻畫了軟件系統(tǒng)能做什么(Whattodo),應(yīng)表現(xiàn)出怎樣的行為,需滿足哪些方面的條件和約束等要求軟件需求的類別軟件功能性需求(FunctionalRequirement)能夠完成的功能及在某些場景下可展現(xiàn)的外部可見行為或效果軟件質(zhì)量方面的需求(QualityRequirement)外部質(zhì)量屬性,外部可展現(xiàn)的,用戶、客戶等會(huì)非常關(guān)心,如運(yùn)行性能、可靠性、易用性等內(nèi)部質(zhì)量屬性,隱藏在內(nèi)部的,軟件開發(fā)工程師會(huì)非常關(guān)心,如可擴(kuò)展性、可維護(hù)性、可理解性軟件開發(fā)約束性需求(ConstraintRequirement)開發(fā)成本、交付進(jìn)度、技術(shù)選型、遵循標(biāo)準(zhǔn)等方面提出的要求非功能性需求:軟件質(zhì)量需求和約束需求示例:空巢老人看護(hù)軟件的需求功能性需求自主跟隨老人、獲取老人圖像和視頻信息、檢測老人是否摔倒等質(zhì)量方面的需求始終保持在2米的安全距離,對機(jī)器人的控制在2秒內(nèi)響應(yīng)等約束性需求成本不能超出50萬元,要求半年內(nèi)交付使用等等這些需求都是誰提出來的?示例:Mini-12306軟件的需求功能性需求注冊、登錄、查詢車次、購票、退票、改簽等質(zhì)量方面的需求操作界面反應(yīng)控制在1秒鐘范圍內(nèi)軟件具有私密性和可信性,能保護(hù)旅客的個(gè)人敏感信息軟件具有安全性,能夠抵御外部的網(wǎng)絡(luò)攻擊約束性需求開發(fā)成本控制在100萬元以內(nèi)在6個(gè)月之內(nèi)交付該軟件產(chǎn)品軟件前端APP需部署在Android、iOS、鴻蒙等操作系統(tǒng)下運(yùn)行軟件需求的類別類別內(nèi)涵關(guān)注的利益相關(guān)方示例功能性需求軟件具有的功能、行為和服務(wù)用戶、客戶、開發(fā)者群體、其他系統(tǒng)分析和識別老人語音呼叫分析異常狀況

軟件質(zhì)量需求內(nèi)部質(zhì)量需求開發(fā)者群體可維護(hù)性、可擴(kuò)展性、可理解性、可重用性等外部質(zhì)量需求用戶、客戶、開發(fā)者群體、其他系統(tǒng)界面操作要在1秒內(nèi)響應(yīng)視頻延遲不超過2秒開發(fā)約束性需求軟件開發(fā)需滿足的要求客戶、開發(fā)者群體、其他系統(tǒng)要求在6個(gè)月內(nèi)交付產(chǎn)品軟件運(yùn)行在Android之上采用Java語言來實(shí)現(xiàn)軟件需求的特點(diǎn)(1/2)隱式性來自于利益相關(guān)方,它隱式存在很難辨別,甚至?xí)z漏掉隱晦性在利益相關(guān)方的潛意識之中,不易于表達(dá)出來,難以獲取所表達(dá)的軟件需求存在模糊性、歧義性、二義性多源性存在多個(gè)的利益相關(guān)方存在相沖突和不一致的軟件需求軟件需求的特點(diǎn)(2/2)易變性用戶對軟件的期望和要求也會(huì)經(jīng)常性地發(fā)生變化在整個(gè)生命周期都會(huì)發(fā)生變化領(lǐng)域知識的相關(guān)性軟件需求的內(nèi)涵與軟件所在領(lǐng)域的知識息息相關(guān)“12306”與鐵路旅客服務(wù)領(lǐng)域相關(guān)價(jià)值不均性不同的軟件需求對于客戶或用戶而言所體現(xiàn)的價(jià)值是不一樣的主要和次要、核心和外圍需求如何從利益相關(guān)者獲取完整、清晰、一致和有價(jià)值的軟件需求是一項(xiàng)挑戰(zhàn)!思考和討論以12306軟件系統(tǒng)為例,討論12306軟件的需求如何反映了其隱式性、易變性、隱晦性、與領(lǐng)域相關(guān)性等特點(diǎn)。軟件需求的質(zhì)量要求(1/2)有價(jià)值(Valuable)基于計(jì)算機(jī)軟件的解決方案,有效提高問題解決的效率和質(zhì)量,促進(jìn)相關(guān)領(lǐng)域的業(yè)務(wù)創(chuàng)新正確(Right)反映利益相關(guān)方的期望,不能曲解或誤解他們的要求完整(Complete)不能有遺漏或丟失無二義(Unambiguous)軟件需求的描述應(yīng)該是清晰和準(zhǔn)確的軟件需求的質(zhì)量要求(2/2)可行(Feasible)在技術(shù)、經(jīng)濟(jì)等方面應(yīng)該是可行的一致(Consistent)不應(yīng)存在沖突可追蹤(Traceable)可追蹤到其源頭可驗(yàn)證(Verifiable)可找到某種方式來檢驗(yàn)軟件需求是否在軟件系統(tǒng)中得到實(shí)現(xiàn)思考和討論以12306軟件系統(tǒng)的購票功能為例,描述該軟件功能,討論這一軟件功能需求如何反映了軟件需求的有價(jià)值、正確、完整、無二義、可行、一致等質(zhì)量要求你覺得12306軟件的各項(xiàng)功能都有價(jià)值嗎?哪些功能的價(jià)值最高?軟件需求的重要性軟件的價(jià)值和意義所在軟件開發(fā)的基礎(chǔ)和前提軟件驗(yàn)收的標(biāo)準(zhǔn)和依據(jù)軟件利益相關(guān)方軟件需求軟件開發(fā)軟件系統(tǒng)提出開發(fā)依據(jù)驗(yàn)收標(biāo)準(zhǔn)價(jià)值所在思考和討論如果軟件需求存在以下問題會(huì)給軟件開發(fā)帶來什么后果?提不出有價(jià)值的軟件需求不清晰的軟件需求:沒有說清楚不完整的軟件需求:漏掉了重要的軟件需求不一致的軟件需求:對同一個(gè)需求項(xiàng)有不同的表述1.4何為需求工程?用工程化的理念和方法來指導(dǎo)軟件需求實(shí)踐它提供了一系列的過程、策略、方法學(xué)和工具幫助需求工程師加強(qiáng)對業(yè)務(wù)或領(lǐng)域問題及其環(huán)境的理解,獲取和分析軟件需求指導(dǎo)軟件需求的文檔化和評審,以盡可能獲得準(zhǔn)確、一致和完整的軟件需求,產(chǎn)生軟件需求的相關(guān)軟件制品所謂的工程化是指提供了相關(guān)的過程、步驟、方法、工具等需求工程的一般性過程獲取軟件需求分析軟件需求文檔化軟件需求確認(rèn)和驗(yàn)證軟件需求軟件需求管理初步軟件需求軟件需求模型軟件需求文檔確認(rèn)后的軟件需求需求工程的特點(diǎn)知識密集型工作,需要交叉多學(xué)科的知識既需要軟件工程、需求工程的知識,也需要領(lǐng)域知識多方共同參與軟件需求的獲得需要多方人員的共同參與,包括不同類別的用戶、客戶、領(lǐng)域和業(yè)務(wù)專家、各類開發(fā)者、質(zhì)量保證人員等等需求獲取的多種形式和源頭獲取、構(gòu)思、創(chuàng)作等,要采用多種形式和手段持續(xù)迭代和逐步推進(jìn)貫穿于軟件整個(gè)生命周期思考和討論以12306軟件為例,討論該軟件需求的獲取和分析等工作如何體現(xiàn)需求工程的多方面特點(diǎn)多領(lǐng)域知識多方參與多形式和源頭持續(xù)迭代需求工程的方法-抽象如何理解和抽象軟件需求?軟件需求本質(zhì)是什么?應(yīng)采用什么樣的抽象來刻畫軟件需求?結(jié)構(gòu)化需求工程(1970s-)軟件功能需求的本質(zhì)是數(shù)據(jù)處理,即軟件具有哪些數(shù)據(jù)以及要對這些數(shù)據(jù)進(jìn)行什么樣處理需求抽象:數(shù)據(jù)、數(shù)據(jù)的處理面向?qū)ο笮枨蠊こ蹋?990s-)軟件功能需求的本質(zhì)是對象所展示的行為,即有哪些對象、它們有什么樣行為、交互和協(xié)作需求抽象:對象、交互和行為抽象有助于揭示(尤其是功能性)需求的本質(zhì)需求工程的方法-建模如何刻畫和描述軟件需求?清晰地表達(dá)軟件需求,目的是理解和交流采用自然語言或結(jié)構(gòu)化自然語言存在描述不直觀、二義性和模糊性等問題圖形化的需求建模語言直觀、易于理解數(shù)據(jù)流圖、UML圖建模有助于表達(dá)和描述清楚軟件需求需求工程的方法-分析如何精化和分析軟件需求?循序漸進(jìn)地獲得軟件需求細(xì)節(jié),逐步發(fā)現(xiàn)和解決需求問題,得到詳細(xì)和準(zhǔn)確的軟件需求描述及模型提供策略和手段指導(dǎo)一步步地精化和分析軟件需求建立準(zhǔn)確和一致的軟件需求模型防止漏掉重要的軟件需求發(fā)現(xiàn)并解決其中的問題和存在的缺陷,以保證軟件需求的質(zhì)量分析有助于精化需求、發(fā)現(xiàn)并解決需求中的問題軟件需求工程師負(fù)責(zé)需求工程的各項(xiàng)工作與用戶和客戶的溝通、導(dǎo)出和構(gòu)思軟件需求、協(xié)商需求問題或解決沖突、建立軟件需求模型、撰寫軟件需求文檔等須具備多方面知識、技能和素質(zhì),應(yīng)既是專才,也是通才軟件工程、需求工程、業(yè)務(wù)領(lǐng)域的知識,如“12306”軟件組織、溝通和協(xié)調(diào)與軟件的客戶、用戶,開展討論、交流和評審語言表達(dá)清晰地表達(dá)需求,準(zhǔn)確地刻畫內(nèi)涵,直觀地建立模型創(chuàng)新能力思考和討論軟件需求工程師需要哪些方面的知識、能力和素養(yǎng)?以12306軟件系統(tǒng)的需求工程師為例內(nèi)容軟件需求和需求工程概念和類別、地位和作用任務(wù)、過程和方法學(xué)軟件需求的建模和分析方法結(jié)構(gòu)化軟件需求分析方法面向?qū)ο蟮男枨蠓治龇椒ㄐ枨蠊こ痰妮敵龊驮u審輸出制品、需求缺陷和需求評審軟件需求變更及管理2.1結(jié)構(gòu)化需求建模和分析方法軟件的功能具體表現(xiàn)為對數(shù)據(jù)的處理軟件的功能主要反映為軟件具有什么樣的數(shù)據(jù)以及要對數(shù)據(jù)進(jìn)行怎樣的處理如果說清楚了軟件有那些數(shù)據(jù)以及要對這些數(shù)據(jù)做什么樣的處理,也就說清楚了軟件具有什么樣的功能數(shù)據(jù)流圖繪制軟件系統(tǒng)中的數(shù)據(jù)及其處理轉(zhuǎn)換:對數(shù)據(jù)進(jìn)行的加工和處理,以產(chǎn)生新的數(shù)據(jù),用橢圓形表示,橢圓內(nèi)部附上轉(zhuǎn)換的名稱數(shù)據(jù)流:數(shù)據(jù)在不同轉(zhuǎn)換、外部實(shí)體、數(shù)據(jù)源之間的流動(dòng),用有向邊來表示,邊上附上數(shù)據(jù)的名稱外部實(shí)體:位于軟件系統(tǒng)邊界之外的數(shù)據(jù)產(chǎn)生者或者消費(fèi)者。外部實(shí)體可以表現(xiàn)為人也可以表現(xiàn)為系統(tǒng),用矩形框來表示,矩形內(nèi)部附上實(shí)體的名稱數(shù)據(jù)存儲(chǔ):數(shù)據(jù)的存放場所,可以表現(xiàn)為文件、數(shù)據(jù)庫等形式轉(zhuǎn)換數(shù)據(jù)流外部實(shí)體數(shù)據(jù)存儲(chǔ)示例:Mini-12306軟件的數(shù)據(jù)流圖2.2面向?qū)ο笮枨蠓治龅幕舅枷耄?/2)現(xiàn)實(shí)世界(應(yīng)用問題)還是計(jì)算機(jī)世界(軟件系統(tǒng)),它們都是由多樣化的對象所構(gòu)成的,每個(gè)對象都有其狀態(tài)并可提供功能和服務(wù),不同對象之間通過交互來開展協(xié)作來實(shí)現(xiàn)功能和提供服務(wù)示例:“空巢老人看護(hù)軟件”某個(gè)機(jī)器人就是一個(gè)對象,它可處于不同的狀態(tài)(如空閑、運(yùn)行、故障等),并可提供諸如獲取視頻和圖像信息、播放語音、向前運(yùn)動(dòng)、先后運(yùn)動(dòng)等一系列的功能Mini-12306中的某張車票就是一個(gè)對象,它可處于不同狀態(tài)(如已售出、未售出、失效等)狀態(tài),并可提供出售、退票等功能和服務(wù)面向?qū)ο笮枨蠓治龅幕舅枷耄?/2)面向?qū)ο筌浖こ烫峁ο?、類、屬性、操作、消息、繼承等概念來抽象表示現(xiàn)實(shí)世界的應(yīng)用,分析其軟件需求特征,建立起軟件需求模型,描述軟件需求基于類、包、關(guān)聯(lián)等概念來分析應(yīng)用系統(tǒng)的構(gòu)成借助類的方法等概念來描述對象所具有的行為利用對象間的消息傳遞等概念來分析多個(gè)不同對象如何通過協(xié)作來實(shí)現(xiàn)應(yīng)用功能的。面向?qū)ο笮枨蠓治龇椒▽W(xué)還提供了可視化的建模語言,幫助需求工程師建立多視點(diǎn)的軟件需求模型如用例模型、交互模型、分析類模型等等面向?qū)ο蟮暮诵母拍顚ο?Object)類(Class)繼承(Inheritance)多態(tài)(Polymorphism)覆蓋(Override)重載(Overload)消息(Message)聚合(Aggregation)和組合(Composition)對象(Object)個(gè)體或者事物抽象表示現(xiàn)實(shí)世界和計(jì)算機(jī)世界應(yīng)用領(lǐng)域?qū)ο?、軟件?shí)體對象的屬性和操作屬性(Attribute):對象的性質(zhì),其值定義了對象狀態(tài)操作(Operation):也稱方法,對象行為,表示對象提供的服務(wù)示例用對象表示應(yīng)用領(lǐng)域的一個(gè)事物(如NAO機(jī)器人),也可以用它來表示在計(jì)算機(jī)軟件中的某個(gè)運(yùn)行元素或單元(如運(yùn)行實(shí)例)對象是具體、有意義的、存在著的實(shí)體類(Class)類是對一組具有相同特征對象的抽象分類、組織機(jī)制,將具有相同特征的對象組織為一類封裝了屬性和操作對象與類的關(guān)系對象是類的實(shí)例,類是創(chuàng)建對象的模板類是靜態(tài)的抽象;對象是動(dòng)態(tài)、可運(yùn)行的實(shí)體老師老師:張義學(xué)生學(xué)生:王宏博類對象消息(Message)消息傳遞是實(shí)現(xiàn)對象間通訊和協(xié)作的基本手段一個(gè)對象向另一個(gè)對象發(fā)送消息來請求其服務(wù)消息描述接收對象名、操作名和參數(shù):received-obj.msg-name(para.)消息類型同步消息:請求者需要等待響應(yīng)者的處理結(jié)果異步消息:請求者發(fā)出消息后繼續(xù)工作,無需等待學(xué)生:王宏博課程注冊中心registerCourse(course-name)注意:消息傳遞發(fā)生在對象(而非類)之間繼承(Inheritance)表示類與類間的一般與特殊關(guān)系模擬現(xiàn)實(shí)世界類之間的遺傳關(guān)系子(特殊)類可共享父(一般)類的屬性和操作刻畫類間的內(nèi)在聯(lián)系以及對屬性和操作的共享子類也可以有自己的獨(dú)特屬性和操作借助繼承可形成系統(tǒng)的層次化類結(jié)構(gòu)示例:課程、公共課、專業(yè)課單重繼承和多重繼承多重繼承子類擁有多個(gè)父類單重繼承多態(tài)(Polymorphism)操作的外部接口定義形式相同,但是內(nèi)部實(shí)現(xiàn)方式不一樣同一個(gè)操作作用于不同對象上可有不同解釋,并產(chǎn)生不同結(jié)果課程、公共課、專業(yè)課三個(gè)類的“計(jì)費(fèi)”操作實(shí)現(xiàn)不同多態(tài)的執(zhí)行方式從具體子類開始,沿繼承結(jié)構(gòu)向上找,直至發(fā)現(xiàn)為止getCharge()getCharge()getCharge()覆蓋(Override)子類增加或重新定義所繼承的屬性或方法,從而用新定義的屬性和方法來覆蓋所繼承的、來自父類中的屬性或方法publicclassA{

Stringname;

publicStringgetValue(){return“Valueis:”+name;}

}publicclassBextendsA{Stringaddress;publicStringgetValue(){return“Valueis:”+address;}}子類B重新定義所繼承的方法getValue重載(Overload)一個(gè)類中有多個(gè)同名操作,但它們在操作數(shù)或操作數(shù)類型上有區(qū)別,系統(tǒng)根據(jù)實(shí)參引用不同方法PublicclassA{intage;Stringname;publicvoidsetValue(intagePara){age=agePara;}

publicvoidsetValue(StringnamePara){name=namePara;}}聚合(Aggregation)和組合(Composition)共性均描述整體-部分關(guān)系,部分類對象是整體類對象的組成部分差別聚合:部分類對象可以是多個(gè)整體類對象的組成部分,即部分類對象可以為多個(gè)整體類對象所共享組合:部分類對象只能位于某個(gè)整體類對象之中,一旦整體類對象消亡,其中部分類對象也無法生存。從設(shè)計(jì)和實(shí)現(xiàn)的角度上看,整體類必須具備完整的管理部分類生命周期的職責(zé)。示例聚合關(guān)系:老師與大學(xué),老師可以兼職組合關(guān)系:校長與大學(xué),校長不可兼職思考和討論如何基于面向?qū)ο蟮母拍顏沓橄蠛兔枋鲕浖枨螅繉ο?、類、消息傳遞等它們能夠描述所有形式的軟件需求嗎?質(zhì)量需求、軟件開發(fā)約束需求基于圖的模型表示及優(yōu)勢表示方法形式的符號化表示<N,E>自然語言的表示圖表示特點(diǎn)和優(yōu)勢直觀,一目了然可以從不同方面來描述,體現(xiàn)多視點(diǎn)抽象,便于發(fā)現(xiàn)問題面向?qū)ο蠼UZ言概念基于面向?qū)ο蟮母拍詈统橄?,提供圖形化的圖符,用來表示軟件系統(tǒng)的一種語言目的用于建模:繪制和描述軟件系統(tǒng)模型(分析模型和設(shè)計(jì)模型)支持交流:便于開發(fā)人員之間的交流、溝通和討論組成語法:圖形化的符號表示語義:形式或半形式的語義語用:如何使用語言來建立模型、提供策略和原則面向?qū)ο蠼UZ言的發(fā)展歷程1980s末-1990s初出現(xiàn)大量面向?qū)ο蠼UZ言數(shù)量幾十種之多代表性:Booch方法、OMT方法和OOSE方法各有千秋,卻又有很多類似之處,往往讓使用者無所適從UML的初衷需要吸收不同建模語言的優(yōu)點(diǎn)尋求一種概念清晰、表達(dá)能力豐富、適用范圍廣泛的面向?qū)ο蟮慕UZ言UML:UnifiedModelingLanguageUnified(統(tǒng)一)提取不同方法中最好建模技術(shù),如OMT(JamesRumbaugh),Boochmethod(GradyBooch

)和OOSE(IvarJacobson)采用統(tǒng)一、標(biāo)準(zhǔn)化的表示方式Modeling(建模)對現(xiàn)實(shí)系統(tǒng)和軟件系統(tǒng)進(jìn)行可視化建模建立系統(tǒng)模型Language(語言)圖形化語言:語法、語義和語用包括規(guī)則,約束擴(kuò)展機(jī)制OMG組織致力于對象技術(shù)標(biāo)準(zhǔn)化工作UML用途用來可視化(visualize)、描述(specify)、構(gòu)造(construct)和文檔化(document)軟件密集型系統(tǒng)的各種產(chǎn)品支持不同人員之間的交流(Communication)VisualizingConstructingDocumentingBusinessModelingSpecifyingCommunicationsUML的多視點(diǎn)建模(1/2)結(jié)構(gòu)視點(diǎn)(StructuralView)用于描述系統(tǒng)的構(gòu)成UML提供了包圖(PackageDiagram)、類圖(ClassDiagram)、對象圖(ObjectDiagram)和構(gòu)件圖(ComponentDiagram),從不同的抽象層次來表示系統(tǒng)的靜態(tài)組織及結(jié)構(gòu)行為視點(diǎn)(BehavioralView)刻畫系統(tǒng)的行為UML提供了交互圖(InteractionDiagram)、狀態(tài)圖(StatechartDiagram)與活動(dòng)圖(ActivityDiagram),以從不同側(cè)面刻畫系統(tǒng)的動(dòng)態(tài)行為。UML的多視點(diǎn)建模(2/2)部署視點(diǎn)(DeploymentView)刻畫目標(biāo)軟件系統(tǒng)的軟件制品及其運(yùn)行環(huán)境UML提供了部署圖(DeploymentDiagram)來描述軟件系統(tǒng)的部署模型用例視點(diǎn)(UseCaseView)刻畫系統(tǒng)的功能UML提供了用例圖(UseCaseDiagram)以描述系統(tǒng)的用例及其與外部執(zhí)行者之間的關(guān)系。UML的視點(diǎn)及圖視點(diǎn)圖(diagram)說明結(jié)構(gòu)

包圖(packagediagram)從包層面描述系統(tǒng)的靜態(tài)結(jié)構(gòu)類圖(classdiagram)從類層面描述系統(tǒng)的靜態(tài)結(jié)構(gòu)對象圖(objectdiagram)從對象層面描述系統(tǒng)的靜態(tài)結(jié)構(gòu)構(gòu)件圖(componentdiagram)描述系統(tǒng)中構(gòu)件及其依賴關(guān)系行為

狀態(tài)圖(statechartdiagram)描述狀態(tài)的變遷活動(dòng)圖(activitydiagram)描述系統(tǒng)活動(dòng)的實(shí)施通信圖(communicationdiagram)描述對象間的消息傳遞與協(xié)作順序圖(sequencediagram)描述對象間的消息傳遞與協(xié)作部署部署圖(deploymentdiagram)描述系統(tǒng)中工件在物理運(yùn)行環(huán)境中的部署情況用例用例圖(usecasediagram)從外部用戶角度描述系統(tǒng)功能示例:用例圖描述軟件的功能性需求示例:用UML的順序圖描述功能的業(yè)務(wù)邏輯順序圖:表示對象之間的消息傳遞和相互協(xié)作面向?qū)ο笮枨蠓治霾襟E明確問題邊界,獲取軟件需求,建立用例模型理解系統(tǒng)邊界,識別系統(tǒng)利益相關(guān)方,導(dǎo)出或構(gòu)思軟件需求,繪制出軟件用例圖,建立軟件用例模型開展用例分析,精化軟件需求,建立分析模型分析用例,從而精化軟件需求,建立起用例的交互模型,并依此導(dǎo)出系統(tǒng)的分析類圖匯總需求模型,撰寫需求文檔,評審軟件需求匯總不同視點(diǎn)、不同抽象層次的需求模型,撰寫軟件需求文檔,對軟件需求模型和文檔進(jìn)行評審,以確保它們的質(zhì)量面向?qū)ο笮枨蠓治龇椒ǖ膬?yōu)勢和特色自然建模面向?qū)ο筇峁┝艘幌盗懈淤N近現(xiàn)實(shí)世界(而非計(jì)算機(jī)世界)的概念和抽象來描述軟件需求統(tǒng)一抽象提供統(tǒng)一的概念和抽象,方便用戶和軟件開發(fā)人員用同一個(gè)概念模型來理解問題、分析問題和解決問題無需采用模型轉(zhuǎn)換的方式,而是采用不斷精化模型的方法來開展軟件開發(fā),從而簡化軟件開發(fā)的復(fù)雜度需求工程的CASE工具需求文檔撰寫工具,如借助于MicrosoftOffice、WPS需求建模工具,如利用MicrosoftVisio、RationalRose、StarUML軟件原型開發(fā)工具,如Mockplus、AxureRPPro、UIDesigner需求分析和管理專用工具,如IBMRationalRequisitePro配置管理工具和平臺,如Git、Github、Gitlab、PVCS、MicrosoftSourceSafe等內(nèi)容軟件需求和需求工程概念和類別、地位和作用任務(wù)、過程和方法學(xué)軟件需求的建模和分析方法結(jié)構(gòu)化軟件需求分析方法面向?qū)ο蟮男枨蠓治龇椒ㄐ枨蠊こ痰妮敵龊驮u審輸出制品、需求缺陷和需求評審軟件需求變更及管理3.1需求工程的輸出軟件需求制品軟件需求模型抽象和直觀地表示軟件需求軟件需求文檔完整和詳盡地記錄軟件需求軟件原型直觀地展示軟件需求軟件需求文檔的內(nèi)容系統(tǒng)和文檔概述軟件功能性需求軟件質(zhì)量方面的需求軟件開發(fā)的約束性需求軟件需求的優(yōu)先級軟件需求文檔的模板1.文檔概述1.1文檔編寫目的1.2文檔讀者對象1.3文檔組織結(jié)構(gòu)1.4文檔中的術(shù)語定義1.5參考文獻(xiàn)2.軟件系統(tǒng)的一般性描述2.1軟件系統(tǒng)概述2.2軟件系統(tǒng)的邊界和范圍2.3軟件系統(tǒng)的用戶特征2.4假設(shè)與依賴3.軟件功能性需求3.1軟件系統(tǒng)的功能概述3.2軟件功能需求的優(yōu)先級3.3軟件功能需求描述4.軟件質(zhì)量要求4.1軟件系統(tǒng)的質(zhì)量要求4.2質(zhì)量要求的優(yōu)先級5.軟件開發(fā)約束性要求5.1軟件設(shè)計(jì)約束5.2運(yùn)行環(huán)境要求5.3進(jìn)度和交付要求5.4驗(yàn)收要求5.5用戶界面要求5.6軟硬件接口要求6.附錄3.2軟件需求缺陷需求缺失,即漏掉了一些重要的軟件需求需求描述不正確,對軟件需求的理解存在偏差需求描述不準(zhǔn)確,軟件需求的表述與用戶的要求不一致軟件需求有沖突、不一致軟件需求不可行,存在可行性

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論