文/葛晨 李洋
結(jié)構(gòu)化思維在軟件需求分析和描述中的應(yīng)用
文/葛晨 李洋
將結(jié)構(gòu)化思維方法面向整體、循序漸進(jìn)、逐步求精的認(rèn)知結(jié)構(gòu)與軟件需求分析和描述相結(jié)合,分層次由上至下、逐步細(xì)化地對(duì)軟件需求進(jìn)行描述,定義軟件需求類型和需求元素,構(gòu)建軟件需求結(jié)構(gòu)化的層次結(jié)構(gòu)和模型,建立需求分析的模板,支持軟件需求的分析和編寫(xiě),并結(jié)合顯示軟件的需求分析和描述過(guò)程進(jìn)行了應(yīng)用實(shí)踐,驗(yàn)證了結(jié)構(gòu)化思維與軟件需求分析相結(jié)合開(kāi)展軟件需求分析的有效性。
需求分析 結(jié)構(gòu)化思維 需求描述層次結(jié)構(gòu) 顯示
各種應(yīng)用軟件改變了人們感知外界、使用工具等日常生活的方式,軟件研發(fā)既有成功的項(xiàng)目,也不乏因需求分析不充分而未正確傳遞需求而出現(xiàn)返工最終超出預(yù)算的案例。在過(guò)去十年中越來(lái)越多的人認(rèn)識(shí)到軟件需求分析是整個(gè)軟件研發(fā)過(guò)程中最關(guān)鍵的一個(gè)過(guò)程,針對(duì)軟件需求分析開(kāi)展了諸多研究與探索。
軟件需求分析是面向整體地啟發(fā)性思維過(guò)程,從問(wèn)題的多個(gè)層次、多個(gè)因素和角度共同完成對(duì)用于需求的分析。結(jié)構(gòu)化思維能站在整體的角度,遵循啟發(fā)性的原則,把復(fù)雜問(wèn)題的求解過(guò)程分層次分類進(jìn)行,由上至下,逐步細(xì)化,結(jié)構(gòu)化思維符合軟件需求分析的思維模式。
本文分析目前軟件需求分析和描述的相關(guān)研究,針對(duì)現(xiàn)有軟件需求分析過(guò)程中的不足,將結(jié)構(gòu)化思維方法與軟件需求分析相結(jié)合,按照分層分類的原則定義軟件需求的需求類型,結(jié)合不同類型的需求特點(diǎn)定義能夠描述該類需求的需求元素,建立軟件需求結(jié)構(gòu)化的層次結(jié)構(gòu)和模型,建立需求的分析模板,支持需求分析和編寫(xiě),使需求有效向下游研發(fā)過(guò)程中傳遞。
圖1:軟件需求組成的結(jié)構(gòu)化分析
圖2:需求的三層結(jié)構(gòu)
圖3:軟件需求實(shí)體關(guān)系模型
在軟件開(kāi)發(fā)技術(shù)中,軟件需求分析是軟件開(kāi)發(fā)周期非常重要的一步,針對(duì)軟件需求分析從需求分析、需求表達(dá)等方面開(kāi)展了相關(guān)研究。文獻(xiàn)[1]闡述了“訪談式”階段、“誘導(dǎo)式”階段、“確認(rèn)式”階段的軟件需求分析三步法,改進(jìn)需求捕獲和確認(rèn)過(guò)程;文獻(xiàn)[3]結(jié)合面向?qū)ο蠛兔嫦虮倔w的技術(shù),通過(guò)對(duì)象和對(duì)象之間的關(guān)系描述需求,通過(guò)形式化語(yǔ)言表達(dá)需求;文獻(xiàn)[4]將形式化方法應(yīng)用于軟件開(kāi)發(fā)過(guò)程的早期階段。
結(jié)構(gòu)化思維能站在整體角度,遵循啟發(fā)性的原則分解問(wèn)題,循序漸進(jìn)、逐步求精,全面完整地對(duì)問(wèn)題進(jìn)行系統(tǒng)思考和解決,在各個(gè)領(lǐng)域得到廣泛應(yīng)用。文獻(xiàn)[5]將結(jié)構(gòu)化思維應(yīng)用到課程教學(xué)中,對(duì)教學(xué)內(nèi)容進(jìn)行分析,建立結(jié)構(gòu)化的基本知識(shí)結(jié)構(gòu);文獻(xiàn)[6]將結(jié)構(gòu)化方法應(yīng)用于管理制度的制定過(guò)程中,建立了模塊化、易維護(hù)、可拓展制度。知識(shí)的梳理、制度的制定與需求分析過(guò)程類似,都是面向整體、自上向下分析分解、逐步求精的解決問(wèn)題的方式,能夠?qū)⒔Y(jié)構(gòu)化思維應(yīng)用于需求分析過(guò)程中。
針對(duì)需求分析和需求描述已開(kāi)展了相關(guān)的研究,取得了一定的進(jìn)展,但仍需將軟件需求分析和具體需求描述進(jìn)一步結(jié)合,形成一個(gè)完整的支持需求分析的方法。本文將結(jié)構(gòu)化思維應(yīng)用于需求分析過(guò)程,形成從需求分析到需求描述的過(guò)程方法,支持軟件需求分析。
結(jié)合結(jié)構(gòu)化思維的面向整體、自上向下分類分析、逐步求精的思想,針對(duì)軟件需求自上向下整理軟件需求類型和需求元素,建立結(jié)構(gòu)化需求結(jié)構(gòu)和模型,形成管理軟件需求的模板,用于軟件需求分析。
軟件需求包括不同類型的不同數(shù)量的軟件需求。軟件需求一般包括功能需求、性能需求等,功能需求又可以分為用于要求的功能需求和派生出來(lái)的可靠性、安全性、保密性等需求。功能需求還可以根據(jù)需求類型的差異進(jìn)一步分類,如控制需求、顯示需求等,不同需求具有不同的特點(diǎn),各類需求共同構(gòu)成軟件需求的完整內(nèi)容。
各類軟件需求可通過(guò)不同類型的不同數(shù)量的需求元素來(lái)定義。每類需求關(guān)注的需求元素存在差異,如時(shí)間性能需求關(guān)注運(yùn)行周期、時(shí)間余量等,空間性能需求關(guān)注存儲(chǔ)空間、存儲(chǔ)余量,控制需求關(guān)注觸發(fā)條件、輸入?yún)?shù)、處理過(guò)程、輸出參數(shù)等,顯示需求關(guān)注圖形的位置、顏色、尺寸、線型、線框、組成的符號(hào)、字體、字號(hào)等。
因此,軟件需求最終由各種類型需求的需求元素組成,需求元素是軟件需求的基本單元。如圖1所示,每行表示需求元素組成一類需求的一條需求,橫截面的立方體表示一類需求的集合,整個(gè)空間表示由多類需求共同構(gòu)成的整個(gè)軟件的完整需求。
根據(jù)上述結(jié)構(gòu)化分析,可以建立如圖 2所示的三層軟件需求,第1層為軟件需求,第2層為軟件的各種需求類型,第3層為軟件需求元素,即軟件需求由不同類型的軟件需求組成,每類軟件需求由各自類型的需求元素描述。
軟件需求與需求類型的實(shí)例是1對(duì)多的關(guān)系,即每個(gè)軟件的軟件需求可以包含多個(gè)類型的多個(gè)軟件需求實(shí)例,每個(gè)需求實(shí)例可以關(guān)聯(lián)各自的多種需求元素,需求實(shí)例和各自的需求元素是1對(duì)多的關(guān)系,如圖 3所示的實(shí)體關(guān)系模型。
圖4:顯示軟件需求分析模板
圖5:顯示軟件需求分析
基于建立的層次結(jié)構(gòu)和實(shí)體關(guān)系模型,能夠建立存儲(chǔ)和管理軟件需求的模板。表格是能夠表達(dá)結(jié)構(gòu)化思維的有效工具,同時(shí)能夠反映表格內(nèi)各屬性元素的關(guān)系,圖形符號(hào)和顯示畫(huà)面是顯示軟件的典型需求,本文結(jié)合顯示軟件的需求分析,總結(jié)了顯示軟件的圖形符號(hào)和顯示畫(huà)面的兩類需求,并定義了描述需求的元素,建立了顯示軟件的圖形符號(hào)和顯示畫(huà)面的需求分析表格如圖 4所示,在進(jìn)行顯示軟件需求分析時(shí)按模板填寫(xiě)需求元素,完成顯示軟件圖形符號(hào)和顯示畫(huà)面的需求分析。
在本文的研究中以顯示軟件中典型的顯示畫(huà)面和圖形符號(hào)的需求分析為例,應(yīng)用顯示軟件需求分析模板,進(jìn)行結(jié)構(gòu)化需求分析的應(yīng)用驗(yàn)證。根據(jù)總結(jié)分析形成的顯示圖符需求分析表格和顯示畫(huà)面需求分析表格的模板,對(duì)姿態(tài)畫(huà)面、地平儀進(jìn)行需求分析,結(jié)果如圖 5所示,得到了顯示畫(huà)面和地平儀顯示需求的需求元素,通過(guò)需求元素完成需求的描述,向下游設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試傳遞信息。
本文將結(jié)構(gòu)化思維模式應(yīng)用于軟件需求分析,結(jié)合結(jié)構(gòu)化思維面向整體、自上向下分類分析、逐步求精的思想,建立了包括軟件需求、需求類型、需求元素的三層需求結(jié)構(gòu),并建立了各層對(duì)象的實(shí)體關(guān)系模型,基于層次結(jié)構(gòu)和模型建立了存儲(chǔ)和管理需求的需求分析模板,并通過(guò)顯示軟件的典型需求進(jìn)行了初步應(yīng)用驗(yàn)證,支持軟件需求的分析和描述。結(jié)合結(jié)構(gòu)化的軟件需求分析方法,進(jìn)一步歸納各類軟件的需求類型和需求元素,能夠用于更多軟件的需求分析。
[1]荊澎.科技應(yīng)用項(xiàng)目中軟件需求分析探究[J].上海海關(guān)學(xué)院學(xué)報(bào),2012(04):103-105.
[2]朱良學(xué).結(jié)構(gòu)化思維的科學(xué)依據(jù)和基本原理[J].科技咨詢導(dǎo)報(bào),2007(30):59.
[3]陸汝鈴,金芝,陳剛.面向本體的需求分析[J].軟件學(xué)報(bào),2000,11(08):1009-1017.
[4]王天舟.早期需求工程中的形式化建模與模型檢驗(yàn)應(yīng)用研究[D].杭州:浙江工業(yè)大學(xué)(碩士論文).2006.
[5]楊麗.結(jié)構(gòu)化思維模式在課程教學(xué)中的應(yīng)用[J].安陽(yáng)師范學(xué)院學(xué)報(bào),2011(06):119-121.
[6]張文健,孫紹榮.結(jié)構(gòu)化方法在管理制度設(shè)計(jì)中的應(yīng)用[J].工業(yè)技術(shù)經(jīng)濟(jì),2006,25(05):52-54.
作者單位中國(guó)直升機(jī)設(shè)計(jì)研究所 江西省景德鎮(zhèn)市333001
葛晨(1985-),男,黑龍江省佳木斯市人。碩士學(xué)位?,F(xiàn)為中國(guó)直升機(jī)設(shè)計(jì)研究所工程師。主要研究方向?yàn)闄C(jī)載嵌入式軟件研發(fā)。李洋(1991-),女,吉林省吉林市人。碩士學(xué)位?,F(xiàn)為中國(guó)直升機(jī)設(shè)計(jì)研究所工程師。主要研究方向?yàn)闄C(jī)載嵌入式軟件研發(fā)。