• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      軟件工程中程序設(shè)計(jì)方法的比較

      2017-07-20 13:05:25劉琴
      計(jì)算機(jī)時(shí)代 2017年7期
      關(guān)鍵詞:對(duì)象化軟件工程程序設(shè)計(jì)

      劉琴

      摘 要: 分析了軟件工程中的程序設(shè)計(jì)方法,將面向?qū)ο?、面向過(guò)程和泛型化這三種方法進(jìn)行對(duì)比,闡述這三種方法各自的特征及存在的聯(lián)系,以便在應(yīng)用時(shí)選擇。

      關(guān)鍵詞: 軟件工程; 程序設(shè)計(jì); 結(jié)構(gòu)化; 對(duì)象化; 泛型化

      中圖分類(lèi)號(hào):TP3-05 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)07-53-03

      Comparison of programming methods in software engineering

      Liu Qin

      (Qinghai Nationalities University School of Computing, Xining, Qinghai 810007, China)

      Abstract: The programming methods in software engineering are analyzed, and the object-oriented, process-oriented and generic, the three methods are compared. The characteristics of each of the three methods and the relationships in between the three methods are described, so as to make choice when needed.

      Key words: software engineering; programming; structure-oriented; object-oriented; genericity

      0 引言

      軟件工程實(shí)際出現(xiàn)在1960年末,在軟件不斷發(fā)展過(guò)程中其問(wèn)題也逐漸凸顯,以致于造成了“軟件危機(jī)”,也正是軟件危機(jī)的出現(xiàn)才造就了軟件工程。后來(lái)軟件工程逐漸被人們所熟知和認(rèn)可,并被廣泛的應(yīng)用,一直到信息化發(fā)展的今天,軟件工程也是作為軟件和計(jì)算機(jī)技術(shù)發(fā)展的根本。在軟件工程中所包含的一項(xiàng)重要內(nèi)容就是程序設(shè)計(jì),程序設(shè)計(jì)的好壞、是否科學(xué)直接關(guān)系到軟件開(kāi)發(fā)的質(zhì)量,影響到用戶(hù)的需求,因此必須要引起對(duì)程序設(shè)計(jì)的重視,只有形成良好的設(shè)計(jì)意識(shí)、規(guī)范化思想,才可以讓程序設(shè)計(jì)更加完善,提高軟件的生產(chǎn)效率和質(zhì)量。以下主要針對(duì)程序設(shè)計(jì)中幾種常用的方法進(jìn)行比較和分析,從而為軟件工程的發(fā)展奠定良好的基礎(chǔ)。

      1 軟件工程的概述

      1.1 軟件工程的概念

      軟件工程實(shí)際上所研究的是軟件的開(kāi)發(fā)和后期維護(hù),與規(guī)范化、系統(tǒng)性、可定量的特點(diǎn)相結(jié)合以此實(shí)現(xiàn)軟件實(shí)際開(kāi)發(fā)和維護(hù)的價(jià)值,并且可以將現(xiàn)階段的技術(shù)與以往較好的技術(shù)有效的結(jié)合起來(lái),以便于可以更好的保證軟件的質(zhì)量。軟件工程包含多項(xiàng)內(nèi)容,主要有數(shù)據(jù)庫(kù)、軟件開(kāi)發(fā)工具、程序語(yǔ)言設(shè)計(jì)、系統(tǒng)平臺(tái)等等。在現(xiàn)代化信息化時(shí)代,各個(gè)領(lǐng)域都離不開(kāi)軟件的應(yīng)用,應(yīng)用最為普遍的軟件主要有操作系統(tǒng)、游戲、辦公軟件、電子郵件以及人工界面等[1]。軟件工程的出現(xiàn)和應(yīng)用不僅提升了軟件生產(chǎn)效率,減小了成本投入,也在一定程度上促進(jìn)了經(jīng)濟(jì)和我國(guó)社會(huì)的發(fā)展,對(duì)人們生活品質(zhì)的改善起到了推動(dòng)作用。

      1.2 軟件工程的基本目標(biāo)及原則

      軟件工程也可以被看作是解決軟件問(wèn)題的一項(xiàng)工程,就是對(duì)軟件中所遇到的問(wèn)題進(jìn)行指導(dǎo)和處理。在軟件工程概念中,對(duì)軟件進(jìn)行開(kāi)發(fā)要依據(jù)市場(chǎng)的需求來(lái)進(jìn)行,并且在開(kāi)發(fā)過(guò)程中雖然是以團(tuán)隊(duì)為主,但依然要充分的考慮到客戶(hù)的需求,依據(jù)客戶(hù)的要求和標(biāo)準(zhǔn),在成本以及進(jìn)程給定的情況下,開(kāi)發(fā)出可以與客戶(hù)需求相一致的,具有高效率、適應(yīng)能力強(qiáng)、可靠性和可維護(hù)性高、易操作的相關(guān)產(chǎn)品。但是應(yīng)該注意的是,在軟件工程落實(shí)的過(guò)程中,必須要依照相關(guān)原則來(lái)完成,主要的原則包括:信息隱蔽、模塊化、抽象、確定性、一致性、局部化、可驗(yàn)證性及完備性。

      ⑴ 信息隱蔽所講的就是利用封裝技術(shù),來(lái)完成對(duì)程序模塊細(xì)節(jié)的隱蔽,從而將模塊的接口簡(jiǎn)易化。

      ⑵ 模塊化就是將程序分成若干個(gè)單獨(dú)的體系,每個(gè)個(gè)體都有其獨(dú)立的編程,應(yīng)注意的是模塊量要掌握好,不可過(guò)大也不可過(guò)小,太大容易造成內(nèi)部復(fù)雜性增強(qiáng),太小容易導(dǎo)致整體系統(tǒng)復(fù)雜性的增強(qiáng)。

      ⑶ 抽象原則就是要保持事物最基礎(chǔ)的特點(diǎn),運(yùn)用分層次抽象的方法從上到下逐一將其細(xì)化,并以此來(lái)完成對(duì)軟件開(kāi)發(fā)過(guò)程的管控,將復(fù)雜簡(jiǎn)易化。

      ⑷ 確定性原則,就是在軟件開(kāi)發(fā)過(guò)程中所應(yīng)用到的相關(guān)概念的表述必須要保證其準(zhǔn)確、規(guī)范且無(wú)歧義。

      ⑸ 一致性原則,要求的就是外部的接口要與內(nèi)部接口相一致,系統(tǒng)的要求要與操作流程相一致。

      ⑹ 局部化原則,要確保模塊之間和內(nèi)部要擁有松耦合性和高內(nèi)聚性。

      ⑺ 可驗(yàn)證性原則,在軟件開(kāi)發(fā)完成后,要對(duì)其進(jìn)行全面的檢查、測(cè)試、審核等,以保證整個(gè)軟件系統(tǒng)的性能。

      ⑻ 完備性原則,就是要保證軟件內(nèi)部相關(guān)功能、組成的完整性。

      2 程序設(shè)計(jì)概述及其方法種類(lèi)分析

      2.1 程序設(shè)計(jì)的概念

      所謂程序設(shè)計(jì)就是針對(duì)某一問(wèn)題所采取的解決方式的過(guò)程,它在軟件結(jié)構(gòu)中有著十分重要的作用。通常情況下,程序設(shè)計(jì)都是以語(yǔ)言為基礎(chǔ)的,利用相應(yīng)的語(yǔ)言進(jìn)行編程,其過(guò)程主要包括設(shè)計(jì)、分析、編碼、檢測(cè)、排查錯(cuò)誤等環(huán)節(jié)[2]。因程序編寫(xiě)需要很強(qiáng)的邏輯性思維,因此必須要對(duì)其加以規(guī)范,主要從以下幾個(gè)方面來(lái)規(guī)范:一是對(duì)源程序中的文檔進(jìn)行規(guī)范,就是規(guī)范標(biāo)識(shí)的名稱(chēng)、注釋、以及程序的視覺(jué)組織等;二是對(duì)數(shù)據(jù)信息進(jìn)行規(guī)范,也就是將程序所顯示的變量、次序等進(jìn)行嚴(yán)格要求,以便于可以依照順序查找變量,對(duì)于較為復(fù)雜的數(shù)據(jù)應(yīng)標(biāo)記注釋?zhuān)蝗菍?duì)語(yǔ)言的結(jié)構(gòu)進(jìn)行規(guī)范,即任何一條語(yǔ)言都不能過(guò)長(zhǎng),要簡(jiǎn)潔明了,盡可能地減少對(duì)GOTO語(yǔ)句的使用,編程最多選用三種最為基本常用的方法;四是對(duì)輸入和輸出數(shù)據(jù)的規(guī)范,每條出入數(shù)據(jù)都應(yīng)進(jìn)行校驗(yàn)個(gè)檢查,使其出入相一致,以保證報(bào)表的準(zhǔn)確性[3]。

      2.2 程序設(shè)計(jì)方法對(duì)需求的分析

      所謂的需求分析就是依據(jù)客戶(hù)的需求,根據(jù)客戶(hù)在軟件方面的功能、操作、設(shè)計(jì)等方面的要求來(lái)進(jìn)行設(shè)計(jì)和分析。分析的過(guò)程實(shí)際就是發(fā)現(xiàn)需求、完善需求、建立模型和完成需求的過(guò)程。模型通常包括三種:功能、控制和數(shù)據(jù)模型。在進(jìn)行需求分析的過(guò)程中,必須要經(jīng)過(guò)四個(gè)環(huán)節(jié),分別是:了解需求、需求分析、需求標(biāo)準(zhǔn)、要求的編寫(xiě)和需求的審核。通常情況下,在進(jìn)行程序設(shè)計(jì)時(shí)會(huì)用到三種較為常用的方法,分別是過(guò)程化程序設(shè)計(jì)方法、對(duì)象化設(shè)計(jì)方法和泛型化設(shè)計(jì)方法。針對(duì)其需求分析我們主要采用結(jié)構(gòu)化分析方法。結(jié)構(gòu)化分析方法又可以成為程序化分析方法,它的主要作用就是全面的了解用戶(hù),掌握用戶(hù)對(duì)軟件的整體需求。經(jīng)常采用的工具有數(shù)據(jù)字典、數(shù)據(jù)流圖、判定表和判定樹(shù)[4]。①數(shù)據(jù)流圖就是將數(shù)據(jù)在系統(tǒng)中的運(yùn)動(dòng)情況用圖形的方式將其表示出來(lái),主要體現(xiàn)的是系統(tǒng)的邏輯性能,也是邏輯模型的工具之一。在進(jìn)行數(shù)據(jù)流圖繪畫(huà)時(shí),應(yīng)以從上到下、從外向內(nèi)的方式逐一地將其內(nèi)容細(xì)化,以保證數(shù)據(jù)整體的準(zhǔn)確性和可靠性。②數(shù)據(jù)字典是指集系統(tǒng)相關(guān)數(shù)據(jù)為一體的程序列表,主要包括五個(gè)組成部分:數(shù)據(jù)流、數(shù)據(jù)項(xiàng)、數(shù)據(jù)構(gòu)造、處理和存儲(chǔ)。通過(guò)這樣的方式對(duì)客戶(hù)需求進(jìn)行分析,不僅可以準(zhǔn)確全面的了解客戶(hù)所需,還可以提高軟件的開(kāi)發(fā)質(zhì)量,有利于軟件效率的提高。

      3 程序設(shè)計(jì)方法之間的比較

      過(guò)程化的設(shè)計(jì)方法又可以被稱(chēng)為是結(jié)構(gòu)化方法,它最早起源于1970年后,并在軟件工程中有著重要的地位。過(guò)程化方法的設(shè)計(jì)原則是從上向下、精益求精和模塊化,所謂的模塊化就是將軟件系統(tǒng)分別單獨(dú)的設(shè)立子模塊,在所有的模塊拼接完成后就會(huì)構(gòu)成一個(gè)完整的軟件系統(tǒng)。但在軟件工程不斷發(fā)展的過(guò)程中,問(wèn)題也逐漸暴露,其中軟件的生產(chǎn)效率低下、維護(hù)困難等最為常見(jiàn)。也正因其自身的抽象性較低,便于實(shí)現(xiàn)的特點(diǎn),所以比較適用于處理一些比較簡(jiǎn)單、規(guī)模較小的問(wèn)題。

      對(duì)象化設(shè)計(jì)方法最早是在1980年被人們所發(fā)現(xiàn)和應(yīng)用的,它的出現(xiàn)改善了過(guò)程化程序設(shè)計(jì)中存在的問(wèn)題,大大提高了軟件的生產(chǎn)效率,為軟件的維護(hù)提供了便捷。在現(xiàn)階段也已經(jīng)成為了人們最常用的設(shè)計(jì)方法。對(duì)象化設(shè)計(jì)就是把軟件系統(tǒng)劃分成單個(gè)的對(duì)象,而各個(gè)對(duì)象的存在都是依靠對(duì)外界的分析而存在的,可以說(shuō)它與我們認(rèn)知的方式更為相似,而且它可以利用繼承和類(lèi)來(lái)實(shí)現(xiàn)與現(xiàn)實(shí)世界相符合的軟件系統(tǒng)的建立[5]。與程序化方法相比較,對(duì)象化設(shè)計(jì)方法用對(duì)象替代了以往的功能分解,它的主要特征就是封裝,也就是把代碼和相關(guān)數(shù)據(jù)存放到對(duì)象當(dāng)中,用對(duì)象將其進(jìn)行封裝,使數(shù)據(jù)和代碼不受外部作用的影響,無(wú)法對(duì)其進(jìn)行修改或訪問(wèn)。繼承也是對(duì)象化的一大特點(diǎn),即在父類(lèi)方面所獲取的相應(yīng)操作或?qū)傩钥梢赃M(jìn)行再次定義;另一個(gè)特點(diǎn)是多態(tài),即父對(duì)象所定義的方法,子對(duì)象也可以按照自身的需求和方式對(duì)其進(jìn)行改進(jìn),以自身去完成相應(yīng)的動(dòng)作。對(duì)象化設(shè)計(jì)方法更加重視對(duì)象的分析和設(shè)計(jì),抽象性高,且實(shí)現(xiàn)過(guò)程較為復(fù)雜。它主要適用于相對(duì)復(fù)雜的問(wèn)題,尤其是對(duì)象間關(guān)系形成層次的問(wèn)題。

      隨著我國(guó)軟件技術(shù)的不斷發(fā)展,泛型化的設(shè)計(jì)方法隨之發(fā)展起來(lái),并得到了廣泛的應(yīng)用。泛型化的設(shè)計(jì)方法是依據(jù)類(lèi)型的需求,對(duì)其需求之間的關(guān)系進(jìn)行分析來(lái)完成的軟件結(jié)構(gòu)和邏輯的設(shè)立。泛型設(shè)計(jì)方法的主要目的是把算法從對(duì)象行為當(dāng)中分離開(kāi)來(lái),讓算法的設(shè)計(jì)與數(shù)據(jù)的整體構(gòu)造毫無(wú)聯(lián)系,通過(guò)改變二者之間的關(guān)系,將強(qiáng)或和關(guān)系轉(zhuǎn)變?yōu)槿趸蚝完P(guān)系以保證軟件復(fù)用功能[6]。主要包括三個(gè)部分,一是概念,也就是和目標(biāo)數(shù)據(jù)無(wú)實(shí)際關(guān)聯(lián)的一組定義,但實(shí)際卻可以進(jìn)行數(shù)據(jù)操作;二是模型,也就是在數(shù)據(jù)應(yīng)用到相應(yīng)的概念時(shí)所形成的模型;三是強(qiáng)化,當(dāng)其中的一個(gè)概念融合了其他概念的全部功能,則這一個(gè)概念就是其他概念的強(qiáng)化。泛型化設(shè)計(jì)方法所重視的是軟件的抽象性和通用性,其優(yōu)點(diǎn)在于抽象性高,程序應(yīng)用范圍較廣泛,可以滿(mǎn)足多數(shù)據(jù)分類(lèi)的操作,同時(shí)保證原有的效率,但也因此使其實(shí)現(xiàn)變得更加復(fù)雜。所以,它主要的適用對(duì)象是通用性和抽象性高的問(wèn)題。綜上所述,這三種方法有著不同的特點(diǎn),也有共同的特點(diǎn),即可靠性和安全性好。三種方法的比較見(jiàn)表1。

      4 結(jié)束語(yǔ)

      根據(jù)上述對(duì)程序設(shè)計(jì)方法的對(duì)比分析,我們?cè)谶M(jìn)行程序設(shè)計(jì)時(shí)可以依據(jù)客戶(hù)的需要、特點(diǎn)等來(lái)選擇出適合的方法,提升用戶(hù)的滿(mǎn)意度。對(duì)程序設(shè)計(jì)方法進(jìn)行比較和分析對(duì)軟件開(kāi)發(fā)是十分有益的。深刻理解這些方法,在以后的發(fā)展中以其為基礎(chǔ),充分發(fā)揮不同方法的作用,相信一定會(huì)走的更遠(yuǎn)。但是盡管如此,也避免不了問(wèn)題的存在,所以也要不斷完善和創(chuàng)新,將問(wèn)題逐一擊破,從而為其發(fā)展起到推動(dòng)的作用。

      參考文獻(xiàn)(References):

      [1] 王林章,何劍濤,韓志雄,卜磊,趙建華,李宣東.設(shè)計(jì)模式指導(dǎo)

      的軟件分簇方法[J].中國(guó)科學(xué):信息科學(xué),2014.1:37-53

      [2] 常浩浩,覃征.基于EMF和OCL的MDA軟件工程方法研究[J].

      計(jì)算機(jī)科學(xué),2007.1:268-271

      [3] 李志輝,崔洪芳.組件化程序設(shè)計(jì)方法和面向?qū)ο蟪绦蛟O(shè)計(jì)

      方法的比較[J].福建電腦,2004.11:21

      [4] 王斌.軟件工程程序設(shè)計(jì)中幾種常用算法的比較研究[J].電

      腦知識(shí)與技術(shù),2012.18:4425-4427

      [5] 李新.“程序設(shè)計(jì)方法學(xué)”雙層次并行教學(xué)模式探討[J].汕頭

      大學(xué)學(xué)報(bào)(自然科學(xué)版),2012.2:63-67,80

      [6] 杜欣,丁立新,謝承旺,陳莉.基于EDA的并行基因表達(dá)式程

      序設(shè)計(jì)方法[J].計(jì)算機(jī)科學(xué),2010.2:196-199

      猜你喜歡
      對(duì)象化軟件工程程序設(shè)計(jì)
      對(duì)象化的思想:人類(lèi)生活中的信息
      基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      “非對(duì)象化”及其人本價(jià)值
      從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      論對(duì)象化及人之存在
      高職高專(zhuān)院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
      依托工作室的軟件工程實(shí)踐教學(xué)研究
      基于工程教育認(rèn)證的《軟件工程》課程教學(xué)質(zhì)量建設(shè)研究 
      關(guān)于提高軟件工程實(shí)踐教學(xué)質(zhì)量的幾點(diǎn)思考
      關(guān)于如何創(chuàng)新和完善計(jì)算機(jī)軟件工程管理的探討
      河源市| 永泰县| 通山县| 诸城市| 罗平县| 清徐县| 云霄县| 阳信县| 澳门| 奉新县| 滦南县| 麻江县| 峨边| 木里| 敖汉旗| 黎城县| 英超| 丹巴县| 崇礼县| 华容县| 元氏县| 双桥区| 罗田县| 二手房| 泰和县| 通化市| 阆中市| 阿图什市| 阜新市| 阿坝| 沂水县| 右玉县| 水城县| 西峡县| 郎溪县| 专栏| 五大连池市| 丰县| 定边县| 天长市| 赤水市|