官术网_书友最值得收藏!

2.1.3 結(jié)構(gòu)化方法的特點(diǎn)

結(jié)構(gòu)化方法的核心就是通過(guò)功能分解來(lái)減少程序設(shè)計(jì)的復(fù)雜性,并且增加軟件的可重用性,以減少開(kāi)發(fā)和維護(hù)的費(fèi)用。

1.結(jié)構(gòu)化方法的優(yōu)點(diǎn)

① 從系統(tǒng)整體出發(fā),強(qiáng)調(diào)在整體優(yōu)化的條件下自頂向下地分析和設(shè)計(jì),保證了系統(tǒng)的整體性和目標(biāo)的一致性。

② 強(qiáng)調(diào)功能抽象和模塊化,采取分解的方法,把一個(gè)比較復(fù)雜的問(wèn)題分解為若干個(gè)容易處理的部分,降低了問(wèn)題處理的難度。

③ 嚴(yán)格區(qū)分系統(tǒng)開(kāi)發(fā)的工作階段,及時(shí)總結(jié)每一階段的工作,發(fā)現(xiàn)問(wèn)題后及時(shí)反饋和糾正。每一階段的工作成果是下一階段的依據(jù),便于系統(tǒng)開(kāi)發(fā)的管理和控制。

④ 按工程標(biāo)準(zhǔn)建立標(biāo)準(zhǔn)化的文檔資料,大大簡(jiǎn)化了編程人員繁雜的工作,也有利于軟件后期的維護(hù)。

2.結(jié)構(gòu)化方法的缺點(diǎn)

結(jié)構(gòu)化方法適用于規(guī)模較大、結(jié)構(gòu)化程度較高的系統(tǒng)的開(kāi)發(fā),這類系統(tǒng)的業(yè)務(wù)處理過(guò)程規(guī)范,數(shù)據(jù)需求非常明確,在一定時(shí)期內(nèi)需求變化不大。

結(jié)構(gòu)化方法在20世紀(jì)70年代至20世紀(jì)80年代可以滿足需求,但在越來(lái)越復(fù)雜的非數(shù)值計(jì)算類型的軟件系統(tǒng)開(kāi)發(fā)中,在廣泛應(yīng)用圖形界面的交互式應(yīng)用中,在控制要求非常突出的系統(tǒng)中,在需求經(jīng)常變動(dòng)的環(huán)境下,這種方法暴露出了許多弊病。

① 功能與數(shù)據(jù)分離的系統(tǒng)設(shè)計(jì)結(jié)構(gòu)與人類的現(xiàn)實(shí)世界環(huán)境很不一樣,和人的自然思維也不一致。因此,現(xiàn)實(shí)世界與系統(tǒng)程序之間存在著一道鴻溝。

② 系統(tǒng)是圍繞著如何實(shí)現(xiàn)一定的功能來(lái)運(yùn)行的,即按照功能來(lái)劃分系統(tǒng),當(dāng)用戶需求發(fā)生變化,比如要求修改現(xiàn)有系統(tǒng)功能的實(shí)現(xiàn)方式或者要求追加新的功能時(shí),修改就變得極為困難。這類系統(tǒng)的結(jié)構(gòu)基于上層模塊必須掌握和控制下層模塊工作的前提,因此在下層模塊發(fā)生變化時(shí),常常會(huì)迫不得已去改變一系列的上層模塊,新的上層模塊也必須了解它的所有下層模塊,編寫(xiě)這樣的上層模塊是極為困難的,從而導(dǎo)致這種方法無(wú)法適應(yīng)技術(shù)的迅速發(fā)展和當(dāng)代社會(huì)的發(fā)展要求。

③ 當(dāng)系統(tǒng)中模塊之間的控制作用有重要影響時(shí),也就是說(shuō),實(shí)際的控制發(fā)生的根源來(lái)自分散的各個(gè)模塊時(shí),模塊間的控制作用只能通過(guò)上下之間的調(diào)用關(guān)系來(lái)實(shí)現(xiàn),從而造成信息傳遞路徑過(guò)長(zhǎng)、效率低、易受干擾,甚至出錯(cuò)。如果允許模塊間為進(jìn)行控制而直接通信,結(jié)果則是系統(tǒng)總體結(jié)構(gòu)混亂,難以維護(hù)、控制,出錯(cuò)率高。因此,這種方法是無(wú)法適應(yīng)以控制關(guān)系為重要特性的系統(tǒng)的要求的。

④ 用結(jié)構(gòu)化的方法開(kāi)發(fā)出來(lái)的系統(tǒng)往往難以維護(hù),主要是因?yàn)樗械暮瘮?shù)都必須知道數(shù)據(jù)結(jié)構(gòu),而許多不同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu)只有細(xì)微的差別,這種情況的函數(shù)中常常充滿了條件語(yǔ)句,但它們與函數(shù)的功能毫無(wú)關(guān)系,只是因?yàn)閿?shù)據(jù)結(jié)構(gòu)的不同而不得不使用它們,結(jié)果就造成程序的可讀性很差。

⑤ 自頂向下功能分解的分析設(shè)計(jì)方法極大地限制了系統(tǒng)的可重用性,導(dǎo)致大量的重復(fù)性工作,大大降低了系統(tǒng)開(kāi)發(fā)人員的工作效率。

總的來(lái)說(shuō),結(jié)構(gòu)化方法的不足主要表現(xiàn)在:第一,系統(tǒng)開(kāi)發(fā)周期長(zhǎng),難以適應(yīng)環(huán)境變化;第二,對(duì)于結(jié)構(gòu)化程度較低的系統(tǒng),在開(kāi)發(fā)初期難以鎖定功能要求。

主站蜘蛛池模板: 伊宁市| 古田县| 汨罗市| 博野县| 太湖县| 茶陵县| 来宾市| 高尔夫| 沧州市| 通海县| 福清市| 阿拉尔市| 江华| 辽阳县| 保山市| 浮山县| 新泰市| 上杭县| 育儿| 镇巴县| 遂川县| 遵义市| 湟中县| 象山县| 本溪| 锡林浩特市| 陕西省| 山西省| 汨罗市| 称多县| 托克托县| 乐亭县| 太湖县| 梨树县| 中江县| 贺兰县| 波密县| 潼关县| 祥云县| 巴青县| 分宜县|