国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

我們是否需要軟件工程

2019-11-17 04:40:48
字體:
供稿:網(wǎng)友

  ∮幸壞憒蠹銥梢源锍曬彩兜木褪牽綣桓魷骔indows這樣的操作系統(tǒng),不進行全面的規(guī)劃,不采用軟件工程的思想和方法,是絕對搞不出來的。

  Windows的成功不在于它在進程治理和調(diào)度,文件系統(tǒng)、內(nèi)存治理、界面設(shè)計等方面有多少成功的創(chuàng)新,它的成功最大的一點就是把所有的技術(shù)能夠合理的整合起來,并集中到一個Window操作系統(tǒng)特有的框架結(jié)構(gòu)中去。

  更為重要的是,Windows的每一項技術(shù)創(chuàng)新都能夠有效的整合到Windows框架中去,比如COM、xml等技術(shù),通過ActiveX、DCOM等技術(shù)使Windows從桌面操作系統(tǒng)發(fā)展成為一個基于網(wǎng)絡(luò)的操作系統(tǒng)。

  OLE2技術(shù)把整個Office中相關(guān)的軟件進行了有效的整合,顯然,這里我們可以把Office的設(shè)計和wps的設(shè)計進行比較,客觀的講,WPS對中國用戶來說實在也是一個很好的產(chǎn)品。但是從整個系統(tǒng)設(shè)計概念上來講,Office顯然要比WPS高一個層次,它能夠把WordExcelPowerpointaccess有效的整合在一起,使我們所有辦公相關(guān)的文檔、圖表、數(shù)據(jù)庫、演示變成了一個一體化的東西。而且通過宏調(diào)用,用戶可以自己定制用戶界面并編制適當(dāng)?shù)?a >模板,單是這個二次開發(fā)功能就不是WPS現(xiàn)在所能及項背的,當(dāng)然限于當(dāng)前用戶的水平還很少有人使用二次開發(fā)的功能。

  從微軟產(chǎn)品系列可以看到軟件工程的作用,微軟的所有產(chǎn)品都有一個整體的框架結(jié)構(gòu),比如Office軟件,通過OLE技術(shù)進行有效的通訊和聯(lián)系。比如Visual系列開發(fā)工具,提供了相似的開發(fā)界面使用戶學(xué)會一種開發(fā)工具以后能夠很輕易的學(xué)習(xí)其他的開發(fā)工具。比如SQL SERVER和ACCESS,盡管它們適用的范圍不同,但是它們表現(xiàn)給用戶的界面,非凡是在查詢和分析上表現(xiàn)了高度的一致性。

  更值得一提的是,因為設(shè)計結(jié)構(gòu)的合理性,因為在開發(fā)前期作了很多分析和調(diào)研,考慮了擴展性和伸縮性,微軟的系列產(chǎn)品能夠很快的利用新的技術(shù)并采用統(tǒng)一的結(jié)構(gòu)形式表現(xiàn)出來。比如當(dāng)網(wǎng)絡(luò)成為計算機發(fā)展的主流的時候,幾乎微軟所有的工具都能夠快速的支持基于網(wǎng)絡(luò)的開發(fā)和應(yīng)用。
  相比之下,我們國內(nèi)很多公司的產(chǎn)品很少具有連續(xù)性,往往是新的一個產(chǎn)品完全重起爐灶,和老的產(chǎn)品沒有半點關(guān)系。這就是我們在設(shè)計產(chǎn)品的時候,沒有很好的進行抽象和概念、邏輯設(shè)計,造成的結(jié)果是從舊的產(chǎn)品中提取不出一些有用的、共性的東西為后來的產(chǎn)品所使用。

  當(dāng)然,很多開發(fā)人員從心里也承認一個大的系統(tǒng)確實需要軟件工程的依托? 是一個小的工程項目是否就可以倉促上馬呢?答案是否定的。所謂麻雀碎小,五臟俱全。無論是大項目、還是小項目。它們作為一個項目,都需要有一個需求分析、系統(tǒng)結(jié)構(gòu)建立、設(shè)計、編碼、測試等階段。這是任何一個項目都不可缺少的。


  往往可以看到很多大公司的IT部門的人員都在不停的作各種各樣的報表,當(dāng)各個部門提出一種新類型的報表的時候,就從數(shù)據(jù)庫中提取相應(yīng)的數(shù)據(jù)并畫出業(yè)務(wù)人員所需要的樣式結(jié)構(gòu),很少是提供了一個通用的模板,當(dāng)然提供高層API接口進行這種操作的就更少了。這樣不可避免的使開發(fā)人員陷入一些瑣碎的報表編制工作。而造成這個局面的很重要的一個原因就是沒有在系統(tǒng)開發(fā)的前期進行很好的調(diào)研、需求分析和系統(tǒng)體系結(jié)構(gòu)的設(shè)計。

  這里就我們開發(fā)過的一些小型軟件項目來談一些開發(fā)的總結(jié)和體會,一般來說,小型軟件項目功能比較單一,而且模塊與模塊之間的銜接不是很多,同時對開發(fā)周期要求比較短。

  小項目雖然看起來比較簡單,所以很多開發(fā)人員輕易犯一些錯誤,記得我們在開發(fā)一個基于Internet的有償服務(wù)系統(tǒng)的時候,有三個開發(fā)人員:一個負責(zé)前端界面的編寫,一個負責(zé)數(shù)據(jù)通訊協(xié)議和實現(xiàn)(基于TCP基礎(chǔ)上的應(yīng)用協(xié)議),一個負責(zé)對數(shù)據(jù)庫數(shù)據(jù)的查詢、整理和提取。我們在開發(fā)的時候沒有認真地進行項目實際前途和工作量的估計。沒有認真地估計項目難度,比如對于通訊中多用戶并發(fā)訪問時的多線程問題和緩存處理問題,用戶批量請求處理的實現(xiàn)復(fù)雜度問題等等。三個人之間的接口也是在開發(fā)中休息的時候,口頭定義一下。結(jié)果發(fā)現(xiàn)有不嚴(yán)密的地方(比如在通訊服務(wù)器端是用VC編寫的,開發(fā)人員是通過stream來傳送數(shù)據(jù)的,客戶端是用Delphi編寫,在接收數(shù)據(jù)的時候發(fā)現(xiàn)數(shù)據(jù)不準(zhǔn)確,后來研究發(fā)現(xiàn)VC利用CSocket在傳送數(shù)據(jù)流的時候?qū)?shù)據(jù)進行了自己定義的格式化,結(jié)果服務(wù)器端數(shù)據(jù)發(fā)送模塊只好重寫),而且其中關(guān)于一個接口雙方的理解不同,然后又返工重新修改。最后到系統(tǒng)基本完成的時候沒有一份較正式的文檔。然后因為有人畢業(yè)離開這個項目,然后他編寫的模塊需要升級,新的接收的人不得不花很多時間去閱讀他的源代碼。
  所以在開發(fā)小項目的時候也必須要建立合理的模式:而所謂合理的模式就是軟件工程告訴我們的在開發(fā)一個項目的時候所需要的五步曲:獲取需求、需求分析、設(shè)計、編碼、測試。

  1.理解用戶真正的需求。在進入正式開發(fā)之前,必須先從用戶處獲取準(zhǔn)確的需求。在這上面花費相當(dāng)時間是很必要的。

  我們軟件項目可以大致分為專用軟件和通用軟件兩大類。對于專用軟件,一般用戶對于軟件要完成哪些功能已經(jīng)有了一個比較清楚的輪廓,而且往往在開發(fā)合同中已經(jīng)大致地規(guī)定了。

  但是,開發(fā)合同上規(guī)定的只是一個大概的框架,在進入開發(fā)之前必須與用戶進行比較具體的交流和討論,了解清楚用戶心目中的產(chǎn)品究竟是什么樣子,這里最好就采用原型化的方法作出一個簡單的框架給用戶看。

  對于通用軟件,在開發(fā)之前必須做一定的市場調(diào)查工作,一方面是從經(jīng)濟效益考慮,調(diào)查產(chǎn)品的潛在市場有多大,一方面是從技術(shù)的角度,了解清楚潛在用戶對軟件的各種技術(shù)上的要求,另一方面是確定我們軟件的定位,即我們軟件具體是為哪一些用戶群體服務(wù)的。然后對該群體用戶現(xiàn)有硬件配置,軟件配置,網(wǎng)絡(luò)使用情況,數(shù)據(jù)庫使用情況,計算機熟悉程度做一定的調(diào)研,根據(jù)調(diào)查的統(tǒng)計結(jié)果決定即將開發(fā)的軟件的一些技術(shù)指標(biāo)。
  
  2.需求分析。需求分析需要做的事情有:高層構(gòu)思、確立系統(tǒng)目標(biāo)、劃分業(yè)務(wù)領(lǐng)域、現(xiàn)行業(yè)務(wù)分析、建立業(yè)務(wù)模型(EnterPRise Model)、信息需求分析、用戶視圖規(guī)范化、數(shù)據(jù)元素標(biāo)準(zhǔn)化與一致性控制。

  在了解用戶的需求之后,將需求用一種模型來表示,就是需求分析,一般我們可以面向?qū)ο蟮姆椒ǎㄟ^分析用戶需求,用類、類之間的各種關(guān)系來表示整個系統(tǒng)。

  為了討論軟件運行的流程,可以采用UML的Use Case圖。在系統(tǒng)分析的時候需要明確應(yīng)用域(application domain)的范圍,然后明確我們系統(tǒng)需要做什么。同時我們需要決定用什么方法來完成需求的獲取,這在很大程度上影響了需求分析的做法。
  例如可以采用Use Case來表示用戶需求,那么從各種序列圖中選出相互交互的各個實體,就是一個個類。另外分析需要與設(shè)計過程相銜接。
分析過程的內(nèi)容是用對象和對象之間的關(guān)系來表示整個系統(tǒng)和系統(tǒng)的流程的,并不設(shè)計具體實現(xiàn),如采用什么編程語言,在什么操作系統(tǒng)平臺上運行等等。這些具體實現(xiàn)是在設(shè)計階段來完成的。

  面向?qū)ο蠓椒ǖ膬?yōu)點是分析、設(shè)計、編碼過程表示法統(tǒng)一,能比較好的銜接。現(xiàn)在很多CASE工具并不區(qū)分分析和設(shè)計的階段。但是,這并不意味著開發(fā)就可以對分析和設(shè)計不加區(qū)分,如何用好輔助設(shè)計(case)工具還是開發(fā)人員的事情。


  3.設(shè)計過程。設(shè)計階段的工作包括對分析模型進行必要的修改,同時可能需要對某些類結(jié)構(gòu)做一些修改,確定用戶表示層(也就是通俗所說的界面定義)、用戶服務(wù)層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫服務(wù)層和具體數(shù)據(jù)庫所需要做的工作。同時需要確定使用的體系結(jié)構(gòu)(比如B/S還是C/S)和開發(fā)工具(如VB,VC,VI,C++ Builder,DELPHI,PowerBuiler等等)

  4.編碼。進入編碼工作之后,依然可能會發(fā)現(xiàn)前面分析或設(shè)計階段的某些錯誤,這時應(yīng)返回到前面的階段進行必要的修改。同時在編碼前規(guī)定編碼的風(fēng)格并在開發(fā)過程中保持一致的風(fēng)格。


  5.測試。測試是系統(tǒng)投入使用前最要害的一個步驟。即使是小項目也應(yīng)該嚴(yán)格地進行測試。就實際上就是一個把錯誤留給自己還是留給客戶的問題。

  最后,我們知道軟件項目主要是由開發(fā)人員完成的,所以對人員的合理安排和配置也很重要,一般在開發(fā)過程中,需要有一位項目負責(zé)人,負責(zé)分析、設(shè)計和協(xié)調(diào)的工作。另外需要幾個程序員完成不同層的代碼(比如用戶服務(wù)層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫服務(wù)層等等)。

  同時需要有一個文檔整理人員隨時整理系統(tǒng)開發(fā)過程中相關(guān)的文檔。假如條件可能的話,要配置一個測試工程師,專門進行代碼的測試工作,當(dāng)然假如條件不答應(yīng)的話,也可以由開發(fā)人員交叉測試。這里需要注重的是,對于項目負責(zé)人而言,協(xié)調(diào)幾個人的工作比自己完成一段編碼更重要。

  由于協(xié)調(diào)上出了漏洞,可能導(dǎo)致很大的問題,所以項目負責(zé)人必須隨時監(jiān)控各開發(fā)人員的工作,包括內(nèi)容是否與要求發(fā)生偏差,進度是否滯后等等。同時必須給每個開發(fā)人員明確的任務(wù)書。具體開發(fā)時每個開發(fā)人員必須非常明確自己的任務(wù),這些任務(wù)應(yīng)該采用明確的文檔來表示。每個開發(fā)人員需要清楚自己所做的工作在整個系統(tǒng)中處于什么地位,這樣就有可能會發(fā)現(xiàn)設(shè)計模型中的漏洞,避免了各人的代碼編寫完畢之后又要修改的后果。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌都县| 南投县| 安新县| 三都| 延边| 威远县| 沂南县| 延吉市| 开平市| 乐陵市| 新平| 辽源市| 夹江县| 安义县| 紫金县| 当雄县| 雷山县| 荆门市| 突泉县| 靖远县| 宽城| 成安县| 富蕴县| 石嘴山市| 崇州市| 长葛市| 武鸣县| 阳山县| 日照市| 司法| 根河市| 乐亭县| 故城县| 苗栗市| 监利县| 黄山市| 理塘县| 武安市| 霍城县| 错那县| 卢湾区|