今天想聊聊软件工程中的工具,俗话说得好,工欲善其事,必先利其器,开发工具不说了,各种IDE是大多数人最亲密的伙伴,感情最深,不用累述。其他需求,构建,测试环节可用的好工具不少,当然了,软件工程水平公司差异很大,版主曾经工作的公司,有的项目经理写个邮件就开工了,干完用户说行就行,需求新增或者修改都是一个电话,这种作坊式的开发方式在国内大小公司都有,小软件还可以,规模大了之后很难控制,一个老员工离职与之相关的所有功能,需求,代码都在他脑子里被带走了,多走俩人基本项目或产品就失败了,没有工程管理方法,软件质量也无从保证,事实证明再优秀的工程师也难免不往软件里带入bug,当然了,国内很多项目,甲方要求没那么高,能用和质量好的差异很大,就好像街边小摊买把菜刀,和德国双立人刀具的差距,当然成本投入也是相应的,做出来的价值也差异很大,就不展开说了。

我想聊聊整个软件工程中的工具使用情况,因为版主曾经工作的单位性质包含20人的游戏公司,国内上市公司,也有中等规模外企和500强外企,根据软件性质也分项目和产品,所以用得比较杂。早期还是瀑布开发模式,需求分析,概要设计,详细设计,开发,测试,交付,往往交付的时候要补一大堆文档给客户。近些年的开发模式都转到了迭代方法上,每日构建,尽早发现错误,测试开发并行。下面列一下我用过的工具和简单评论,也希望大家能给点反馈,说说你那边的环境及感受,可以加上行业,因为我知道虽然都是做软件,但互联网,移动,游戏各个细分行业的差别还是不少的。

1. 需求分析:Word,Excel,邮件,JIRA。我好像这么多年没用过什么特别的需求分析工具,做项目的时候,整理客户需求一般就用word,excel,有时候邮件也做需求收集的方法,有些新功能用JIRA开个ITEM,来跟踪需求完成情况,不知道大家用什么来记录和管理需求。

2. 构建工具:系统小团队小的话,Ant或者Maven, 工程大子工程多的话,必须上持续集成工具,自动化构建,我用过Pulse和Hudson,有名气的还有CruiseControl,每日自动构建是一个很好的实践,能把bug消灭在源头,保证软件不会偏离目标太大,也能不断有可用的build去给客户演示进行更多的需求收集。

3. 缺陷管理: Bug tracking工具比较多,我用过Jira, BugDB, bugzilla,都还不错,bug工具和自动化构建工具可以连接起来,每一次构建加入了对哪个bug或者feature的修改,都可以有一目了然的log,也方便追溯问题,责任定位到个人。

4. 自动化测试:这个对于保证软件质量也很重要,而且由于有了持续集成工具和每日构建的环境,自动化测试和这些都可以集成起来,比如每天晚上12点开始build,build完成后,自动启动测试脚本,生成报告,第二天上班就能掌控软件目前的状况。这里面又分好几小类,有自动化压力测试,功能测试,还有针对本地桌面软件的测试和Web应用的测试,工具很多,Selenium是做web自动化测试的,Jmeter,loadrunner可以做压力测试,还用过LISA做web测试,Junit做单元测试。桌面程序用过Test partner,自动录制动作去回放,当然了很多测试用例用工具难以实现,包括验证,所以很多公司也自己开发测试框架,在一些大公司里,有专门的自动化测试团队,专门做工具及框架来优化测试。

5. 代码复查: code review也是良好实践,感觉对代码质量有很大提高,自己写毕竟有局限性,听听别人的建议,有些很弱的错误也容易避免,我用过Fish Eye 和 Review Board, 每个公司的是用方法不一样,一般是找几个资深的大牛来做reviewer,代码review通过后才能提交到代码库。

6. 版本管理: VSS,CVS,SVN, 好像最近几年svn用的多。

希望大家说说自己公司的软件工程工具的运用情况, 可以用下面格式

[行业:互联网 需求:xxx  自动构建:xxx 测试工具:xxx]

谈软件工程各环节中的辅助工具相关推荐

  1. 3DMAX基础建模 | 3Dmax修改器堆栈中的辅助工具

    今天给你解解闷,给你们聊一聊3Dmax修改器堆栈中的辅助工具怎么用? "锁定堆栈":当场景中有多个物体对象,如果我们对其中一个对象添加修改器,然后开启"锁定堆栈" ...

  2. Linux开发中的辅助工具

    文章目录 前言 一.add2line 二.strip 三.ar 四.nm 五.objdump 六.size 七.strings 总结 前言 本篇文章我们来介绍一些Linux开发中的辅助工具,有了这些辅 ...

  3. 软件工程顶级会议中的自动修复工具——JFIX [ISSTA 2017]

    前言 本文旨在讲述软工顶会论文中的自动修复工具JFix. 一.SemFix [ISSTA 2017] 1.1 文章名 JFIX: Semantics-Based Repair of Java Prog ...

  4. Windows 2000辅助工具设置(转)

    Windows 2000辅助工具设置(转)[@more@] 在Windows 2000 Server中包含一些特殊用户可能用到的辅助工具,例如,对于眼睛近视的用户来说,启用"放大镜" ...

  5. 浅谈软件工程中的“原型开发”

    最近作者在参与一个APP的简单开发项目,关于图书推荐.在进行项目探索的时候,不明确用户需求,不知如何下手,于是便和小伙伴们一起交流,在各个相关软件中寻找灵感,最终慢慢摸索出一个简单粗糙的雏形,这便是原 ...

  6. 软件工程文档编写辅助工具

    如下是在编写软件工程相关文档中常用到的辅助工具,欢迎补充 流程图 visio 或者 edraw UML图 StarUML 数据库设计 PowerDesigner 时序图 visio 项目计划 proj ...

  7. 计算机在财务核算中的应用,浅谈计算机在财务核算和财务管理工作中的辅助应用...

    浅谈计算机在财务核算和财务管理工作中的辅助应用 计算机在财务管理中的应用日益广泛,已成为企业财务管理的必要手段.计算机的应用改善了企业财务管理环境,提高了财 (本文共1页) 阅读全文>> ...

  8. [vue] vue开发过程中你有使用什么辅助工具吗?

    [vue] vue开发过程中你有使用什么辅助工具吗? #335 vue-devtools 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌 ...

  9. J2EE学习辅助工具资料列表及下载3(初学积累中)

    以下为其它二集地址: J2EE学习辅助工具资料列表及下载1(初学积累中) [url]http://soly84.blog.51cto.com/153780/41748[/url] J2EE学习辅助工具 ...

最新文章

  1. 基于ESP32智能车竞赛比赛系统硬件初步调试-5-6
  2. 未处理OleDbException - 找不到可安装的ISAM学习总结
  3. oracle sql 调用自定义函数_PSCAD入门教程(第7节):怎样调用fortran编写的自定义函数?(附模型)...
  4. Linux C 串口属性设置
  5. 邮件群发工具的编写(二)数据的保存
  6. 将数据压缩到数据结构中
  7. vavr_使用Vavr在Java 8流中更好的异常处理
  8. echarts折线图,纵坐标数值显示不准确的问题解决
  9. 纯js分页代码(简洁实用)
  10. 函数调用的汇编语言详解
  11. mysql查看已打开文件数_[MySQL FAQ]系列 -- mysql如何计算打开文件数
  12. Google 投资了京东
  13. python播放音乐同步歌词_Python点阵字玩转动态歌词
  14. Mybatis源码分析(一) JDBC Mybatis 简介
  15. 看看故障诊断文献中的故障设置方法-中文论文篇
  16. B样条曲线的公式推导及代码实现
  17. 中企海外周报 | 华为在西班牙启动Wi-Fi 6高校创新应用测试试点;爱奇艺人脸识别技术获全球学术会议认可...
  18. 动态规划--01背包问题详解
  19. 1024,只有程序员才会翘首以盼的日子!
  20. 内存不兼容,升级BIOS

热门文章

  1. Mac配置Java开发环境
  2. jspSmartUpload上传下载全攻略(2012.8.30最新版)
  3. java网上汽车销售网站系统
  4. 餐饮业数字化转型升级的必要性
  5. 中高层的领导者或管理者对公司的作用和影响更为广泛、更为深远
  6. 变种 背包问题_01背包及其变种(物品无限背包、恰好装满背包)
  7. 24点游戏题库算法分析
  8. 闪电标志 php,PHP闪电入门(8)数据类型转换
  9. ueditor 工具栏配置_百度ueditor编辑器自定义工具栏
  10. 计网与操作系统作业(3)