第四章 敏捷开发技术在电子商务软件的推广

1. 电子商务软件实施的高风险性

软件开发行业目前同时存在两种情况,它既是一个非常成功的又是具有很多问题的行业。

2. 在跨平台系统的移植上的应用

电子商务系统经常会出现跨平台的移植。重要的一点就是从功能角度讲,移植前后是否一致。一些敏捷开发中的最佳实践也是可以使用的,比如你可以把所有的需求以测试的方式提炼出来。很多项目都是使用这种方式而且非常成功。

而且使用这种叠盖式方式,也能够从项目进程的角度看移植进程有多快。

3. 在电子商务软件外包公司的应用

软件外包是非常普遍的。在实践中发现敏捷式开发对外包也是非常有效的方法。实践中敏捷式开发比一般的开发方式估算的方法更快,而且用的人要少一些。

  希望中国更多的软件公司可以采用敏捷开发技术,使我们的软件产业能够得到更加快速的提高和发展!(作者: 徐祎 就职于东方钢铁电子商务有限公司,职务为首席项目经理。目前就读上海交通大学MBA班 )

四、敏捷开发常用工具
 
工欲擅其事,必先利其器,能利用工具是人与动物的最大区别。然而,大多数商业化工具价格不菲,已经加入WTO好几年了,再用盗版会给企业带来很大的不确定性,并且盗版用多了,往往会失去一种程序员的自豪感,丢掉一种文化。经过几个月的摸索,本着以下原则,偶选择了一些适合中小企业开发的工具,当作自己的工具箱:
(1)适用于中小型企业,中小型项目(<500万),功能适度

(2)易用性好,具备必要的文档

(3)免费或低价

基于这些工具,慢慢形成了一套敏捷开发过程。

(一)、工具简介

下面简单介绍这些工具,这些工具有些偶已经有相当的使用经验,有些正在使用,有些只是刚选定。除直接用于.net开发的工具中外,还包括一些开发相关的软件设计、项目管理工具。偶的主要开发经验是Web开发,桌面开发和原型开发,对Mobile开发不熟悉,也就没这方面的推荐了。

1,运行平台

常用的也就.net framework 1.1, 2.0, 和mono了,都是免费的。从功能、性能及安装基础来讲,自然.net framework要优于mono了。mono是开源的,.net framework类库可以反编译,从透明的角度讲两者都差不多。如果你想在非windows平台上开发,或者想研究运行时的实现,可以研究mono,否则还是用.net framework吧。

2,服务器

我用过的也就IIS5.0,IIS6.0,Apache加一个mod,还有mono的xsp,这也没啥好比较的,自然首选IIS6.0了。不过IIS虽然免费,但是至少得windows server版本才运行得爽,至少得花几千元。XP上的IIS很不爽,据说也能装全版IIS6.0,不过还是得折腾。开发用的话,用Apache加一个.net的mod,或者mono的xsp,还是挺好用的。Apache的缺点是对新版.net framework的支持较IIS6.0滞后。

3,IDE

tnnd,这个选择空间也很小。首选自然是VS 2003或2005,如果VS 2005速成版将来免费的话,偶就选定这个了,或者选价格并不算高的VS 2005 专业版。可恶速成版、专业版中没单元测试,在这里BS微软10000遍。坚决抵制VSTS版!

其它可选的有SharpDevelop和mono develop。对于不开发Web程序的初学者来说,用SharpDevelop其实也挺不错的,集成的Nant,NDoc,NUnit都是很有用的工具。SharpDevelop没断点调试功能,但熟用NUnit的话可以弥补这一不足。

如果对类库理解得比较深入的话,采用SharpDevelop,生产力其实也挺高的――即使是进行Web开发。SharpDevelop的缺点之一是暂时没重构功能,在下一个版本里会有。缺点之二是内存占用比较大,还有性能比VS低得多,大项目,大程序可能不爽。我测试过,用SharpDevelop打开一个大于3M的C#源文件(嘿嘿!是csgl还是tao的,忘了),挂了;用VS 2003打开大概要花几十秒。

btw,我个人认为其实就用记事本写中小型(<3000行)的C#程序,效率其实也挺高的,这时候会更加注意类的设计,思路会更清晰一些,当然,速度会慢一些。

4,类库和文档

类库是.net平台的资产。目前.net下成熟的类库比较少,和java比,最大的不足就是这里了。最常用的类库当然是.net framework了,其它各方面的类库在网上都能搜索到一些。类库的关键资产要素是dll和文档。看文档要看一手资料,第一手资料就是源代码或反编译过来的代码,然后就是各类的原始文档,一般是chm格式的。如果看源代码习惯的话,效率会很高,并且,建议用反编译工具看代码,不建议直接看源文件,原因其一是反编译工具提供了很多有用的附加功能,其二是反编译的代码比源文件更真实。常用的反编译工具是Reflector。

.net下的文档是爽死了,比javadoc的pp多了。因此在写代码的时候应该注意,多写///注释,然后用Ndoc自动生成chm文档,多爽呀。

很多开源项目提供源代码和少量的文档,但它的源代码中有大量的///注释,可用NDoc自动生成chm文档。即使没有///注释,采用NDoc生成文档也是很值的。

5,数据库

MS SQL Server Express版应该是免费的,但标准版和企业版价格还是不低的,还是用开源的好。对功能有要求就用PostgreSql,没要求就用MySql。偶现在是GIS项目用PostgreSql,一般项目用MySql。数据库管理用EMS MySQL Manager Lite和EMS PostgreSql Manager Lite,免费,好用,界面很豪华,性能还行。

6,设计与建模

偶选定的UML建模工具是JUDE,2M大,免费但不开源,比ArgoUML功能多、好用。比Visio 的UML功能不知道强大多少倍,比Together也好用。缺点就是只是建模工具,和代码不同步。另一个缺点就是不能自动生成文档。不过偶喜欢这样的工具,强大,体积小,灵活,方便。并且偶觉得它在设计时用就行了,具体的类的文档用NDoc生成。JUDE是基于java的,得安装java虚拟机。好像它跨平台也不怎么样,我在linux下没运行成功过。

开源或免费的数据库建模工具试过很多,感觉都不成熟不好用,最后选择了一个商业软件――CASE Studio 2,价格100-300美元,功能很实用,支持很多数据库,生成的文档也很pp。

7,敏捷开发工具

NUnit――单元测试。

NAnt――build工具。前面已经提及。

NDoc――文档生成。前面已经提及。

CruiseControl.Net ――持续集成,暂时还没用过。

NUnit,NAnt,NDoc用的好的话,感觉非常爽,写程序会有艺术家的感觉。

8,团队协作工具

版本管理:CVS和SVN,推荐SVN。客户端推荐用TortoiseSVN――非常可爱的小乌龟。

Bug管理:偶选用的是BugTracker.NET,简单,用ASP.Net写的,小项目够用了。

需求管理、项目管理、日程、经费计算与管理:还是在用Word、Outlook、Excel。要免费的话可用永中Office试用版,一样好用。

(二)、优势

1,性价比高。对于10人规模的团队,看看软件成本:

运行平台:.net framework 1.1或2.0,免费

服务器:1套windows 2003 server版,数千元

IDE:1套VS 标准版或专业版,数千元,其它用express版就行了

类库和文档:免费

数据库:免费。用商业数据库,让客户掏钱。

设计与建模:1套CASE Studio 2就行了,数千元

敏捷开发工具:免费

团队协作工具:1套MS Office(带Visio的)就行了,数千元,其它人用永中。

整个下来,不足20000元。

2,易用性好

反正我的感觉是和商业软件差不多或者稍差

3,易扩展

上面工具大部分是开源的,并且很多工具之间协作性比较好,这样可以用来定制适合自己的生产线。老外的那一套生产线,比如RUP,MSF及其相关工具,除价格贵外,其灵活性也不高,别人的生产线不一定适合自己用。这时上面工具的优势就出来了。

(三)、搭建软件生产线

流程1:项目管理流程

用Office管理需求。用SVN进行源代码管理和文档管理,BugTracker.NET进行 Bug管理和事务管理。尽量将程序、文件、文档的维护自动化。

流程2:开发管理流程

开发过程中所维护的文件越少越好。偶觉得应该尽量少用UML图写文档,只写最关键的部分。类的文档最好由NDoc直接生成。偶用UML工具的时间很少。写代码的过程就是类设计过程。不妨比较这两个流程:(1)用例分析->采用UML工具设计类->由UML工具生成代码或撰写代码->重构代码,自动更新UML文档。(2)用例分析->撰写代码->重构代码。第一个流程只有一个优势,就是人对图形的理解比对代码的理解更加直观,但是多了很对累赘工作。第二个流程少了很多步骤,并且可以随时根据代码逆向工程出类图出来,

我还是喜欢以代码为基础的流程。撰写代码也可分为2个过程,第一个过程是写出一个代码框架,所有的方法都是UNDO,写出属性,接口,写出///文档。这应该是设计过程。这个过程基本上只产生、维护源文件。

类图可以通过visio逆向工程,类设计文档可以通过NDoc自动生成,并且提供了一个测试基础,可以根据这个测试基础写测试代码了。测试代码最好也只写个框架,但是要写好///注释,然后生成测试文档。这应该是设计过程。第二个过程是实现过程,把类文档和代码框架提交给相关人,实现、测试、重构......一切都自动进行......整个过程中只有一份东西,就是源代码,开发过程中的交付件应该都从源代码中自动生成。

数据库脚本和文档用CASE Studio 2维护。最后提交、上线、验收都很好办,所要的东西biaji一下子都出来了。要申报著作权直接从源代码和chm文档中弄一部分出来就够了。

开发的核心是源代码,所有文档应该体现在源代码的结构、关系和注释中。控制整个开发流程的核心工具是Nant。要是能把用例分析过程体现在源代码中就好了!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3433/viewspace-269192/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/3433/viewspace-269192/

敏捷开发大家谈(三)--敏捷开发技术在电子商务软件中的应用(2)相关推荐

  1. 嵌入式开发-浅谈嵌入式MCU开发中的三个常见误区

    浅谈嵌入式MCU开发中的三个常见误区 原创 2017-09-30 胡恩伟 汽车电子expert成长之路 目录 (1)嵌入式MCU与MPU的区分 (2)误区一:MCU的程序都是存储在片上Flash上,然 ...

  2. 计算机技术在音乐作品中的使用,谈电脑音乐制作技术在音乐欣赏课中的应用(一)...

    内容摘要:在音乐欣赏课教学过程中,因教学手段不同,出现了不同的音乐教学效果与教学质量.随着多媒体电脑的发展和电脑音乐制作技术的普及与提高,这些现代技术手段也在音乐欣赏课上有所应用,如果应用得当,就能很 ...

  3. 地统计插值学习心得(三)ArcGIS Pro与ArcMap软件中地统计分析的区别

    前言 ArcMap中地统计分析由来已久,很多GIS专业的同学学习地统计内容都是在ArcMap软件中实现的,随着IT技术的发展,ArcGIS系列软件架构也发生了重大变化,传统的ArcMap软件已不太能够 ...

  4. 原生 APP、Web、混合 APP,三种开发模式有何不同?

    前言 原生 App 又称Native App,该开发针对 IOS.Android.Windows 等不同的手机操作系统要采用不同的语言和框架进行开发:无论是从开发难度,价格还是周期来看,原生开发都更复 ...

  5. UG软件中针对汽车产品开发的模块

    UG软件中针对汽车产品开发的模块 1 汽车产品开发技术及发展方向 目前对先进制造技术尚没有一个明确的.一致公认的定义,经过近年来对发展先进制造技术方面开展的工作,通过对其特征的分析研究,可以认为:先进 ...

  6. STM32开发(1)----stm32f103c6t6开发板介绍和环境搭建

    stm32f103c6t6开发板介绍 前言 一.stm32f103c6t6芯片资源介绍 1.STM32 的命名规则 二.最小系统开发板介绍 三.开发板基本使用方法 1.软件安装 1.1MDK5 安装 ...

  7. 施工管理在计算机上的应用论文,【计算机专业毕业论文】关于计算机应用技术在工程项目管理中的应用...

    [计算机专业毕业论文]关于计算机应用技术在工程项目管理中的应用 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 [计算机专业毕业论文]关 ...

  8. 计算机视觉及其工业中的应用,计算机视觉技术在工业领域中的应用

    卢箭 孙通 刘立峻 摘 要:在科学技术的推动下出现了计算机视觉技术,技术在不断发展中趋于成熟,被有效应用在工业领域中,并且取得了显著成效.发挥出对计算机视觉技术的优势,加强和工业领域的融合,有助于促进 ...

  9. 快速云:云计算技术在计算机数据处理中的应用

    伴随我国信息技术的飞速发展,虽然能在一定程度上给人们生活和工作带来了便捷,而且伴随信息化技术的不断应用,还能推动我国经济发展.但是当工作人员在运用云计算技术展开数据处理工作时,时常会把所有资料信息都存 ...

最新文章

  1. javascript 垃圾回收机制--分代式垃圾回收机制
  2. Rotate List
  3. python+selenium七:下拉框、选项框、select用法
  4. 万网控制面板 php_UPUPW 控制面板启动关闭区介绍
  5. postman压力测试_如何用Postman简单做接口自动化
  6. oracle rpad()函数
  7. spss入门——简单的数据预处理到时间序列分析系列(五)
  8. jquery 背景图片幻灯片
  9. 风之王纳什,言念君子,温其如玉
  10. 使用腾讯tapd工具,进行创建迭代任务、任务拆解、、制定整体发布计划、多维度甘特图进度把控
  11. Android --- 5G网络,android系统开发教程
  12. Postman之CSV或JOSN文件实现数据驱动(参数化)
  13. DES子密钥计算具体步骤
  14. 使用Encoder-Decoder模型自动生成对联的思路
  15. mysql sql查询昨天的数据_sql语句,查询昨天的数据
  16. 延长计算机屏幕显示时间,Win10如何延长锁屏的显示时间?
  17. 冯扬文:波罗的海干散货指数(BDI)介绍
  18. C# 写pdf文件(写入表格)
  19. 禅道设置bug模板_禅道项目管理软件bug过滤剧本
  20. 2021-09-16meituan-010.小团的默契游戏

热门文章

  1. 用两个栈实现队列(剑指offer第五题)
  2. 闲情赋片段——陶渊明
  3. 国外智商测试软件,国际标准智商测试软件_UOML实现 中国软件国际标准零突破...
  4. Windows Server 2008 IP策略关闭135端口
  5. heic如何转换jpg格式?
  6. BiFormer:基于双层路由注意力的视觉Transformer
  7. 蓝桥杯校内选拔赛(河南农业大学)
  8. 华为G700升级鸿蒙,华为g700刷recovery的方法(联通版)
  9. 直播用的计算机配置,直播电脑配置需要什么样的
  10. 2008游戏服务器系统下,Linux系统下玩经典游戏 CS1.5服务器架设