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