徐栩娟+劉述民
摘 要:常用軟件設(shè)計(jì)方法有結(jié)構(gòu)化方法、面向?qū)ο蠓椒āackson方法、原型法、形式化法、生命周期法等。文章對(duì)比分析了這些方法的設(shè)計(jì)思想及開發(fā)過程,并對(duì)比分析了各方法的優(yōu)缺點(diǎn)。
關(guān)鍵詞:專業(yè)課;常用軟件;結(jié)構(gòu)化;原型法;形式化;設(shè)計(jì)
中圖分類號(hào):G718.5;G710 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1008-3561(2016)36-0013-01
當(dāng)前,普遍采用的軟件設(shè)計(jì)方法有結(jié)構(gòu)化分析與設(shè)計(jì)方法 (SD/SA)、Jackson(JSP/JSD)系統(tǒng)開發(fā)方法、原型法、生命周期方法等多種方法。為了更好地展現(xiàn)各種方法的特性,本文從設(shè)計(jì)思想、設(shè)計(jì)步驟或流程、優(yōu)缺點(diǎn)等方面對(duì)各軟件設(shè)計(jì)方法進(jìn)行了相應(yīng)對(duì)比和分析,為軟件設(shè)計(jì)教學(xué)工作提供一定的參考。
一、結(jié)構(gòu)化分析與設(shè)計(jì)方法(SD/SA)
結(jié)構(gòu)化分析方法又稱作SD方法或SA方法,它是通過把現(xiàn)實(shí)世界逐一描繪為各種數(shù)據(jù)在信息系統(tǒng)中的一種流動(dòng),同時(shí)在數(shù)據(jù)不斷流動(dòng)過程中進(jìn)行數(shù)據(jù)和信息之間的轉(zhuǎn)化?;舅枷肟擅枋鰹椋夯谝环N將功能逐一分解的設(shè)計(jì)模式,不斷把復(fù)雜和綜合問題逐層進(jìn)行分解,以便對(duì)問題進(jìn)行簡(jiǎn)化——自頂向下,逐層細(xì)化,從而將復(fù)雜的程序結(jié)構(gòu)劃分為多個(gè)功能完全不相關(guān)或者獨(dú)立的小模塊,最終達(dá)到最簡(jiǎn)化的過程。優(yōu)點(diǎn):比較直觀、應(yīng)用簡(jiǎn)單、容易理解,目前已經(jīng)獲得了較為成功的實(shí)踐經(jīng)驗(yàn),在市場(chǎng)推廣方面有較大的優(yōu)勢(shì)。不足:首先,因?yàn)閺某橄笏季S出發(fā)對(duì)模塊進(jìn)行細(xì)化,所以得到的子模塊方案各異,共性較低;其次,由于對(duì)問題理解上的偏差,導(dǎo)致繼承性較為困難;再次,該方法的自適應(yīng)能力相對(duì)較弱,其設(shè)計(jì)的軟件重用率不高,從而延緩了開發(fā)周期;最后,設(shè)計(jì)文檔時(shí)常出現(xiàn)與表示體系不一致的現(xiàn)象。
二、Jackson(JSP/JSD)系統(tǒng)開發(fā)方法
Jackson開發(fā)方法分為JSP和JSD兩種。(1)JSP開發(fā)方法。JSP方法是一種面向數(shù)據(jù)結(jié)構(gòu)的程序設(shè)計(jì)方案。其基本思路是按照輸入、輸出和內(nèi)部信息的三種數(shù)據(jù)結(jié)構(gòu)形式進(jìn)行設(shè)計(jì),從而把對(duì)數(shù)據(jù)結(jié)構(gòu)的描述轉(zhuǎn)變成一種程序結(jié)構(gòu)的描述方案,因此可實(shí)現(xiàn)通過數(shù)據(jù)結(jié)構(gòu)來反映程序結(jié)構(gòu)的方法。其基本思想可描述為:首先采用自頂向下的思想按功能對(duì)系統(tǒng)進(jìn)行劃分,并逐步求出各子問題的解,將軟件開發(fā)流程視為軟件的生命周期,最終建立一種所謂的瀑布模型。基本實(shí)現(xiàn)步驟可描述為:分析、設(shè)計(jì)、編碼、測(cè)試、運(yùn)行及后期維護(hù)。優(yōu)點(diǎn):簡(jiǎn)單易學(xué);準(zhǔn)入門檻底,對(duì)設(shè)計(jì)者的要求不高。不足:難以滿足規(guī)模較大的軟件系統(tǒng)設(shè)計(jì),且JSP方法難以對(duì)付結(jié)構(gòu)沖突問題。因此,該法僅適用于小型程序的開發(fā)。(2)JSD方法。此方法稱作杰克遜系統(tǒng)開發(fā)方法,它以事件的驅(qū)動(dòng)為中心,將相連的順序組合構(gòu)成程序進(jìn)程,系統(tǒng)設(shè)計(jì)模型可進(jìn)一步抽象成若干條以通信方式進(jìn)行相聯(lián)的進(jìn)程。基本設(shè)計(jì)思想描述為:首先通過仿真來理解并描述客觀事實(shí),其次添加相應(yīng)輸出功能,最后通過某種收到實(shí)現(xiàn)系統(tǒng)間的轉(zhuǎn)換。方法實(shí)現(xiàn)步驟為:實(shí)體的動(dòng)作分析過程→實(shí)體結(jié)構(gòu)分析→定義初始模型→功能描述→決定系統(tǒng)時(shí)間特性→硬件和軟件實(shí)現(xiàn)。優(yōu)點(diǎn):實(shí)現(xiàn)了同類軟件和客觀世界間的關(guān)系研究,并確定了各類軟件系統(tǒng)和軟件現(xiàn)實(shí)決策間的界限。不足:對(duì)客觀現(xiàn)實(shí)同類軟件間的相互關(guān)系認(rèn)識(shí)不夠完整,有待提升;構(gòu)造的軟件實(shí)現(xiàn)結(jié)構(gòu)較為復(fù)雜,有待簡(jiǎn)化;對(duì)軟件結(jié)構(gòu)的相關(guān)描述不完善;JSD在實(shí)現(xiàn)階段較為費(fèi)時(shí)和復(fù)雜,且需要手動(dòng)實(shí)現(xiàn)。
三、原型法
原型法可分為示例型和漸增型兩大類。其實(shí)現(xiàn)思路為:利用設(shè)計(jì)程序自動(dòng)生成軟件工程運(yùn)行環(huán)境,以便構(gòu)造出簡(jiǎn)化的實(shí)際系統(tǒng)模型,從而便于軟件開發(fā)人員和用戶間進(jìn)行有效交流,大大提高了設(shè)計(jì)的靈活性。該方法實(shí)現(xiàn)過程要求迅速,否則便失去了意義。開發(fā)基本步驟可大致分為四步:系統(tǒng)簡(jiǎn)化→原型實(shí)現(xiàn)→系統(tǒng)修改→最終實(shí)現(xiàn)。優(yōu)點(diǎn):能適應(yīng)各種模糊不清和變化不定的用戶需求。不足:需要具備較強(qiáng)的知識(shí)理論基礎(chǔ),同時(shí)需要以相應(yīng)的硬件環(huán)境作支撐。
四、生命周期法
生命周期法學(xué)也把軟件開發(fā)過程分為若干獨(dú)立階段。在軟件實(shí)現(xiàn)過程中,各階段分別完成一定任務(wù),并實(shí)現(xiàn)最終的軟件配置程序/文檔。在完成各階段性任務(wù)過程中,可運(yùn)用結(jié)構(gòu)分析(SA)技術(shù)、結(jié)構(gòu)設(shè)計(jì)(SD)技術(shù)和其他相關(guān)輔助工具。在編程過程中,使用了SP(結(jié)構(gòu)化程序設(shè)計(jì))語言,在各階段結(jié)束時(shí)需要進(jìn)行細(xì)致的復(fù)審過程,只有各項(xiàng)參數(shù)合格后才能進(jìn)行下一步驟的工作。因此,該方法將軟件的生命周期依次分為系統(tǒng)需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測(cè)試、系統(tǒng)維護(hù)五大階段。優(yōu)點(diǎn):該方法采取了自頂向下、逐步求精的設(shè)計(jì)思想;模塊化設(shè)計(jì)過程中,運(yùn)用了結(jié)構(gòu)化程序設(shè)計(jì)方法,采用了嚴(yán)格的復(fù)審及測(cè)試程序,保障了軟件的可維護(hù)性。不足:對(duì)時(shí)變系統(tǒng)不太適用,開發(fā)出的軟件穩(wěn)定性、可重用性和可維護(hù)性都比較差。
五、結(jié)束語
總之,以上各種軟件設(shè)計(jì)方法均存在一定的優(yōu)勢(shì)和缺陷。因此,相關(guān)專業(yè)的師生在設(shè)計(jì)時(shí),應(yīng)根據(jù)設(shè)計(jì)的主客觀條件進(jìn)行相應(yīng)的選擇,提高設(shè)計(jì)能力,充分利用自身和環(huán)境優(yōu)勢(shì)完成軟件的設(shè)計(jì)。
參考文獻(xiàn):
[1]顧明.軟件工程中幾種常用的軟件開發(fā)方法的概述和比較[J].計(jì)算機(jī)科學(xué),1999(26).
[2]楊瑞龍,朱征宇,朱慶生.引入軟件設(shè)計(jì)模式的面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)方法[J].計(jì)算機(jī)教育,2012(10).