个人经验谈一谈软件构建
2014-12-11 19:02
155 查看
项目开发过程的活动:定义问题、需求分析、规划构建、软件架构、详细设计、编码与调试、单元测试、集成测试、集成、系统测试和保障维护。
当初在书上看到这些的时候,确实一头雾水,但是最近自己主管项目开发的时候确实深有体会啊。
需求真的很重要,在开始动工前就一定要确定好,不然后面经常修改的话,既做了很多无用功浪费时间,又加大了开发成本延误工期。所以,开发项目的首要工作就是出一份全面合格的需求文档。
规划构建该怎么实施呢?当然,做项目不能说走一步算一步,必须事先算好工作量,合理分配时间和工作。例如,这个项目有哪些功能或模块组成,每一部分大致需要多少时间来完成,哪些是可以同时进行的,哪些是需要优先完成的等等,以及项目架构该怎么设计,数据库该怎么设计,成员任务该怎么合理分配。另一点,多次开发经验告诉我,不要太完美化,刚开始的时候不要把什么都考虑进来,而是应该先完成一个简单功能的测试版,先要能用,然后往上面加功能,不然反而会适得其反。
软件架构也很重要,不然维护会很困难。至于详细设计与编码调试,那就要分工明确,把控好时间,以及做好交流工作。
单元测试虽然会加大开发成本(学习成本比较高,设计的技术多,单元测试的代码工作量等),但是它不但可以在我们编写代码的时候提升代码质量、减少bug,还能促使开发人员思考工作代码实现内容和逻辑的过程,提升反馈速度,减少重复工作,提高开发效率,让代码更易维护。
至于后续步骤这里就不多说了,这里还是要侧重于“构建”。很多程序员在自主开发项目的过程中都不会按照上面的步骤来做,在他们眼里,这些活动很可能都被归为“编程”了。那么软件构建真的很重要吗?
回答是必然的。软件开发并不是做出来就可以了,提高软件的质量和开发者的生产率都是十分重要的。我有一个朋友,他的能力是挺强的,但是他不适合开发。他是属于那种完成型而非思考型的程序员,他完成一个项目或者一些模块的工作是挺快的,但是,质量不行,真正用起来的时候会发现很多弊端,例如最致命的问题————崩溃、内存泄露,这无疑是一款软件的致命伤。
一款理想的软件项目在进行构建之前,都要经过谨慎的需求分析和架构设计。
一个理想的软件项目在完成构建之后,也要经过全面的、专业的系统测试。
现实中很多不那么完美的软件项目,往往跳过需求和设计,后期又由于没有太多时间修正错误,测试环节也被抛到了一边。但是,构建不能没有!不是么?
当初在书上看到这些的时候,确实一头雾水,但是最近自己主管项目开发的时候确实深有体会啊。
需求真的很重要,在开始动工前就一定要确定好,不然后面经常修改的话,既做了很多无用功浪费时间,又加大了开发成本延误工期。所以,开发项目的首要工作就是出一份全面合格的需求文档。
规划构建该怎么实施呢?当然,做项目不能说走一步算一步,必须事先算好工作量,合理分配时间和工作。例如,这个项目有哪些功能或模块组成,每一部分大致需要多少时间来完成,哪些是可以同时进行的,哪些是需要优先完成的等等,以及项目架构该怎么设计,数据库该怎么设计,成员任务该怎么合理分配。另一点,多次开发经验告诉我,不要太完美化,刚开始的时候不要把什么都考虑进来,而是应该先完成一个简单功能的测试版,先要能用,然后往上面加功能,不然反而会适得其反。
软件架构也很重要,不然维护会很困难。至于详细设计与编码调试,那就要分工明确,把控好时间,以及做好交流工作。
单元测试虽然会加大开发成本(学习成本比较高,设计的技术多,单元测试的代码工作量等),但是它不但可以在我们编写代码的时候提升代码质量、减少bug,还能促使开发人员思考工作代码实现内容和逻辑的过程,提升反馈速度,减少重复工作,提高开发效率,让代码更易维护。
至于后续步骤这里就不多说了,这里还是要侧重于“构建”。很多程序员在自主开发项目的过程中都不会按照上面的步骤来做,在他们眼里,这些活动很可能都被归为“编程”了。那么软件构建真的很重要吗?
回答是必然的。软件开发并不是做出来就可以了,提高软件的质量和开发者的生产率都是十分重要的。我有一个朋友,他的能力是挺强的,但是他不适合开发。他是属于那种完成型而非思考型的程序员,他完成一个项目或者一些模块的工作是挺快的,但是,质量不行,真正用起来的时候会发现很多弊端,例如最致命的问题————崩溃、内存泄露,这无疑是一款软件的致命伤。
一款理想的软件项目在进行构建之前,都要经过谨慎的需求分析和架构设计。
一个理想的软件项目在完成构建之后,也要经过全面的、专业的系统测试。
现实中很多不那么完美的软件项目,往往跳过需求和设计,后期又由于没有太多时间修正错误,测试环节也被抛到了一边。但是,构建不能没有!不是么?
相关文章推荐
- SOA365 个人技术经验分享 个人软件产品展示 精华文章 原创文章 技术交流 技术分享
- 总结个人经验,史上最完整的IDP申请直到软件上架销售流程
- Linux配置与软件安装(个人实践经验) - (1)
- 个人对理想团队模式构建的设想及对软件流程的理解
- 个人软件知识体系构建概论——目录
- 一些关于加速Gradle构建的个人经验
- 软件测试经验(个人总结)-在摸索中成长
- Linux 软件下载安装个人经验
- 个人软件知识体系构建概论——目录
- Linux配置与软件安装(个人实践经验) - (2)
- 个人对理想团队模式构建的设想以及对软件流程的理解
- [软件人生]关于个人所得税的讨论
- 个人写的一个偷懒的软件,有兴趣的拿去用用(更新).
- 构建下一代软件架构
- 请问大家,知不知道,现在有没有点对点,P2P的流媒体软件吗?或者什么公司或者个人已经有产品了?
- 软件开发组的团队精神--- 一个程序员在IBM的开发经验
- 2004年个人版防病毒软件评测报告
- [软件人生]个人如何成长
- 终极软件DIY之FreeBSD下USB打印机的安装经验谈
- [原创] 日构建的设计——For大型软件开发