环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產(chǎn)品分類

當(dāng)前位置: 首頁 > 傳感測量產(chǎn)品 > 數(shù)據(jù)采集產(chǎn)品 > RFID系統(tǒng) > 讀寫器

類型分類:
科普知識
數(shù)據(jù)分類:
讀寫器

小軟件項目開發(fā)的管理

發(fā)布日期:2022-05-20 點擊率:61

  一個企業(yè)的管理,大公司有大公司的方式,小公司也有小公司的方式,如果把別人的 經(jīng)驗生搬硬套到自己身上,可能會適得其反。同樣,管理一個軟件項目也一樣,大項目和小項目的方式不完全一樣。但從另一個角度來看,項目的大與小并沒有本質(zhì)的區(qū)別,很多方法是共通的。本文的目的是從作者的經(jīng)驗來談?wù)勑№椖块_發(fā)的管理。

一、小項目的特點

 大家知道,“軟件危機(jī)”的出現(xiàn)起源于一些大型項目的不斷延遲甚至失敗。小項目相比之下,具有以下特點:
  1.項目功能相對較少
 2.開發(fā)人員較少
 3.開發(fā)周期較短
  另外,在現(xiàn)實中,有很多小項目是由一些中小公司進(jìn)行開發(fā)的,這些公司往往人員流動性較大,這也是不容忽視的一個現(xiàn)實.

二、小項目開發(fā)中常犯的錯誤   
  小項目看起來比較簡單,比較容易成功,因而人們往往忽視了小項目的管理,其實這是一種誤解,從本人的經(jīng)驗看來,小項目開發(fā)中容易犯以下的一些錯誤:
  1、開發(fā)之前沒有認(rèn)真地進(jìn)行項目可行性和工作量的估計。  往往由于項目較小,便很草率地制定一個開發(fā)日程表,沒有認(rèn)真地估計項目難度,結(jié)果實際完成時間與估計完成時間往往有較大差別。
  2、沒有真正的設(shè)計過程
  開發(fā)人員少,意味著不同人員的程序之間交互、接口相對少一些。開發(fā)周期短意味著往往是同樣的幾個人從頭到尾負(fù)責(zé)一個項目。這兩者都讓人容易犯些錯誤。往往是幾個人碰一下頭,討論一下最基本的數(shù)據(jù)結(jié)構(gòu)、函數(shù)接口便分頭去做自己的工作了,沒有一份較正式的文檔。

  這種做法潛在的危險之一是有的人可能會對討論出的接口、結(jié)構(gòu)理解有偏差(應(yīng)該承認(rèn)人是會犯錯誤的)。一個誤解可能造成以后的返工。   另一個潛在的危險是由于討論時忽略了某些情況,等大家都按當(dāng)時的分工完成屬于自己的工作后,才發(fā)現(xiàn)各個模塊組合起來卻形不成一個完整的系統(tǒng)。其根源在于沒有一個負(fù)責(zé)協(xié)調(diào)的人員不斷監(jiān)控整個開發(fā)過程。
  第三個潛在的危險是一旦有人中途退出開發(fā)隊伍,其他人加入時,新來的人難以理解 以前別人做好的代碼,索性自己從頭來。另外,沒有文檔的程序,日后維護(hù)和版本升級都比較困難。
  3.不經(jīng)過單元測試而直接進(jìn)入系統(tǒng)測試
  造成這一現(xiàn)象的原因是每個模塊相對比較簡單,但是為了測試一個模塊需要建立一些測試環(huán)境。例如,為了測試一個函數(shù)是否正確,應(yīng)該用一些測試數(shù)據(jù)去調(diào)用該函數(shù),需要編寫一些測試數(shù)據(jù)。但很多開發(fā)人員嫌麻煩,覺得反正其他模塊也很快出來了,直接用真正的數(shù)據(jù)來運行幾次就行了。
  殊不知,一旦直接進(jìn)入系統(tǒng)測試,發(fā)現(xiàn)運行結(jié)果不正確后需要一步步查找。由于模塊間的調(diào)用關(guān)系,可能查了很久才發(fā)現(xiàn)是某個模塊的問題。這種方法一來效率比較低,大量的時間用在了將一個錯誤定位在模塊上了。另外由于這種測試不完全,真正運行系統(tǒng),當(dāng) 調(diào)用某模塊時,可能大部分時候都是正常數(shù)據(jù),極少出現(xiàn)邊界情況,可能某些邊界情況容易被忽視,很久之后才被發(fā)現(xiàn)。但是如果對每個模塊進(jìn)行單元測試時都進(jìn)行一下邊界測 試,就會很容易消除一些隱患。真可謂欲速則不達(dá)也。

三.合理的開發(fā)流程

  合理的開發(fā)模式,一句話形容就是“麻雀雖小,五臟俱全”,即使是小型項目的開 發(fā),仍然應(yīng)該遵循軟件開發(fā)的一般規(guī)律,必須的步驟不能省略。但是小項目有它自身的一些特點,實行起來可以相對靈活些。
  以下我從幾個方面描述一下我認(rèn)為比較合理的模式.

1.需求獲取

  在進(jìn)入正式開發(fā)之前,必須先從用戶處獲取準(zhǔn)確的需求。在這上面花費相當(dāng)時間是很必要的。
  軟件項目可以大致分為專用軟件和通用軟件兩大類。
  對于專用軟件,例如給某單位開發(fā)一套該單位專用的系統(tǒng),一般用戶對于軟件要完成哪些功能已經(jīng)有了一個比較清楚的輪廓,而且往往在開發(fā)合同中已經(jīng)大致地規(guī)定了。
  但是,開發(fā)合同上規(guī)定的只是一個大概的框架,在進(jìn)入開發(fā)之前必須與用戶進(jìn)行比較具體的交流和討論,了解清楚用戶心目中的產(chǎn)品究竟是什么樣子。這個步驟如果沒有好好做,往往到了開發(fā)工作的后期才發(fā)現(xiàn)開發(fā)人員的理解和用戶的要求有一些誤解,那么必然造成時間上的浪費。
  對于通用軟件,在開發(fā)之前應(yīng)該做一定的市場調(diào)查工作,一方面是從經(jīng)濟(jì)效益考慮,調(diào)查產(chǎn)品的潛在市場有多大,另一方面是從技術(shù)的角度,必須了解清楚潛在用戶對軟件的各種技術(shù)上的要求,例如,用戶現(xiàn)有硬件配置如何,軟件配置如何,使用什么網(wǎng)絡(luò),使用 什么數(shù)據(jù)庫等等,根據(jù)調(diào)查的統(tǒng)計結(jié)果決定即將開發(fā)的軟件的一些技術(shù)指標(biāo)。
  為了比較好地與用戶進(jìn)行交流,使用一些工具是很有好處的。   為了討論用戶界面,可以用VB, delphi等做一個原型,根據(jù)原型有針對性地與用戶討論需求。(原型開發(fā)不僅僅可以用于準(zhǔn)確獲取用戶的需求,開發(fā)出來的原型本身可以作為下一步開發(fā)的基礎(chǔ),增量式地完成開發(fā))
  為了討論軟件運行的流程,可以采用UML的Use Case圖。

2.需求分析

  在了解用戶的需求之后,將需求用一種模型來表示,就是需求分析,目前比較流行的 分析方法是面向?qū)ο蟮姆椒ǎㄟ^分析用戶需求,用類、類之間的各種關(guān)系來表示整個系統(tǒng)。
  這部分涉及到具體的方法,在此不詳細(xì)討論,但是原則上是提取類->類之間關(guān)系,可能需要不斷修改而形成一份分析文檔。

  我想強(qiáng)調(diào)幾個問題。
  一是要分清問題域與系統(tǒng)責(zé)任。系統(tǒng)責(zé)任是指所要開發(fā)的軟件應(yīng)該完成的功能,而問題域是包含所有相關(guān)的部分。例如你要開發(fā)一個程控機(jī)計費程序,程控機(jī)已經(jīng)是現(xiàn)成,輸出的數(shù)據(jù)格式也已經(jīng)是固定的,你的程序僅僅需要從程控機(jī)中讀取相應(yīng)的信息,那么,程控機(jī)在你的系統(tǒng)里只是一個外部的東西,把它作為一個類也許就是不必要的,僅僅需要一個類來完成讀數(shù)據(jù)的操作。又如,你需要在一個已經(jīng)存在的數(shù)據(jù)庫上開發(fā)一些應(yīng)用,數(shù)據(jù)庫的格式已經(jīng)固定,并且已經(jīng)有一個后臺程序在運行,你需要開發(fā)一個新的前臺程序,這時,服務(wù)器程序?qū)δ銇碚f就是一個外部的東西。但是,象這種外部的內(nèi)容必須在分析文檔中有一些說明,作為系統(tǒng)的外在約束。   二是需求獲取與需求分析的關(guān)系。
  用什么方法來完成需求的獲取,在很大程度上影響了需求分析的做法。
  例如當(dāng)初采用Use Case來表示用戶需求,那么從各種序列圖中選出相互交互的各個實體,就是一個個類。

  三是分析與設(shè)計過程的銜接。
  分析過程的內(nèi)容是用類的結(jié)構(gòu)來表示目標(biāo)系統(tǒng),并不設(shè)計具體實現(xiàn),如采用什么編程 語言,在什么操作系統(tǒng)平臺上運行等等。這些具體實現(xiàn)是在設(shè)計階段來完成的。面向?qū)ο蠓椒ǖ膬?yōu)點是分析、設(shè)計、編碼過程表示法統(tǒng)一,能比較好的銜接。但是,是把分析和設(shè) 計階段分開,采用瀑布式開發(fā),還是采用其他方式,要看具體的情況。
  對于需求潛在變化不大的項目,可以采用瀑布模型,有一個很明顯的設(shè)計階段,這樣做的好處是有一份比較完整的分析文檔,這樣以后如果需要采用不同的編程語言、或者采 用其他的平臺時,便可以以這份分析文檔作為開發(fā)的基礎(chǔ)。
  對于需求變化頻繁的項目,可能采用少量分析;少量設(shè)計少量編碼測試的方式更合適,而且隨時可能要返回到前面某個一階段去進(jìn)行修改。但是這意味著可能沒有一份完整的分析文檔。
  現(xiàn)在很多CASE工具并不區(qū)分分析和設(shè)計的階段。但是,這并不意味著開發(fā)就可以對分析和設(shè)計不加區(qū)分,CASE工具如同一支筆,如何用好還得還人。

3.設(shè)計過程

  設(shè)計階段的工作包括:
  對分析模型必要的修改。可能需要對某些類結(jié)構(gòu)進(jìn)行一些修改,這些修改的原因可能是編程環(huán)境的要求,或者為了重用以前的某些工作。
  定義界面部分、數(shù)據(jù)訪問(數(shù)據(jù)庫)部分。
  由于目前很多編程語言都可以可視化地設(shè)計界面,所以界面部分工作往往留到了編碼階段來完成。于是設(shè)計階段的工作量并不大。

4.編碼

  進(jìn)入編碼工作之后,可能會發(fā)現(xiàn)前面分析或設(shè)計階段的某些錯誤,這時應(yīng)返回到前面的階段進(jìn)行必要的修改。

5.測試

  如前所述,即使是小項目,也應(yīng)該嚴(yán)格地進(jìn)行測試。

四、人員的安排
  比較小的項目,往往是幾個人來完成,這幾個人基本上從頭到尾參加開發(fā)。在這幾個人中,有一位項目負(fù)責(zé)人,負(fù)責(zé)分析、設(shè)計和協(xié)調(diào)的工作。由于項目小,項目負(fù)責(zé)人也要參加編程,那么這人必須把時間合理運用,

  經(jīng)驗告訴我?guī)讞l原則:
  1.協(xié)調(diào)幾個人的工作比自己完成一段編碼更重要.
  由于協(xié)調(diào)上出了漏洞,可能導(dǎo)致很大的問題,所以項目負(fù)責(zé)人必須隨時監(jiān)控各開發(fā)人員的工作,包括內(nèi)容是否與要求發(fā)生偏差,進(jìn)度是否滯后等等。
  只有在完成這些工作之后,項目負(fù)責(zé)人剩下的時間才能用于編程。   2.給每個開發(fā)人員明確的任務(wù)書.
  不管是用面向?qū)ο蠡蛘咂渌椒ㄩ_發(fā),分析、設(shè)計模型只是從功能的角度來描述系 統(tǒng)。但是,具體開發(fā)時每個開發(fā)人員必須非常明確自己的任務(wù),這些任務(wù)應(yīng)該采用明確的文檔來表示。
  3.讓大家都大致熟悉設(shè)計模型.
  讓每個開發(fā)人員都清楚自己所做的工作在整個系統(tǒng)中處于什么地位,有時侯可能會發(fā)現(xiàn)設(shè)計模型中的漏洞,避免了各人的代碼編寫完畢之后又要修改的后果。

 

1

下一篇: PLC、DCS、FCS三大控

上一篇: Gen2標(biāo)準(zhǔn)對您而言意味

推薦產(chǎn)品

更多
主站蜘蛛池模板: 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 北京燃气公司 用户服务中心 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 识禅_对禅的了解,从这里开始 | 脱硫搅拌器厂家-淄博友胜不锈钢搅拌器厂家| 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 硅胶制品-硅橡胶制品-东莞硅胶制品厂家-广东帝博科技有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 北京成考网-北京成人高考网 | 润东方环保空调,冷风机,厂房车间降温设备-20年深圳环保空调生产厂家 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 防水套管|柔性防水套管|伸缩器|伸缩接头|传力接头-河南伟创管道 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 地源热泵一体机,地源热泵厂家-淄博汇能环保设备有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 万师讲师网-优质讲师培训师供应商,讲师认证,找讲师来万师 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 上海诺狮景观规划设计有限公司 | 线粒体膜电位荧光探针-细胞膜-标记二抗-上海复申生物科技有限公司 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 |