阅读 63

软件开发过程管理工具,编程需要什么工具

想必现在有很多小伙伴对于什么是软件开发过程管理工具都比较想要了解,那么今天小编就为大家收集了一些关于编程需要什么工具知识,现在开始吧!

软件开发需要的工具和知识很杂,一般情况下包括:工具:你需要一个集成开发环境,主流的是Visual Studio。“集成”的意思是,它是很多工具的集合,主要包括:

源代码编辑:你也可以用VIM,但是这个在Windows开发中非主流,用户多为从Linux过来的。代码编译器:把源代码编译成可执行文件的工具,这其实也是一套工具,有编译代码的(如编译C#的csc),有编译资源的,有控制编译流程的工具(msbuild),有代码自动生成工具,有对程序集进行签名的工具。有兴趣可以看看Windows SDK。代码测试工具:有知名的NUnit,其实Visual Studio也自带一套,而且比Nunit强很多,对UI测试有十分良好的支持。比如UI录制操作,用于回放测试。源代码管理工具:Visaul Studio也有服务器端产品,叫Team Foundation Server,其中便有源代码管理的功能。当然,Visual Studio也可以与Git, Perforce, SVN等其它源代码管理工具集成。Profiling 工具:对代码的运行进行动态分析,通过Hot Path分析性能瓶颈。需求与变更管理工具:管理你软件上的Bug以用户提出的(哪怕是你自己想的)需求。有很多的开源替代品,但是Visual Studio Team Foundation Server有提供这个功能。UI与UX设计工具:界面设计分原型设计(mockup)与界面开发。原型设计常用balsamiq。界面开发根据你使用的技术有所不同。如果使用MFC或是WinForm,基本上只能找专门美工画图。而简单地皮肤库,除了让你的界面眼花缭乱外,在UX上没有实质性的助益。如果使用WPF,微软有Expression Blend和Expression Design负责UX和与UI,是介于开发和美工中间的一类角色。除了VS外,如果是多人开发一般还会需要搭建:持续集成环境,常见的工具是TeamCity或是http://cc.net。沟通平台,常见的是用Email和各种IM,还可以用Wiki或是SharePoint保存每个人的知识和分享。如果时髦些,可以搭一个Jive。知识方面(假设已经是一个程序员):开发一个软件,比如QQ之前,你应该有一定的软件开发基础,但是并不需要先把所有需要的技术了解的一清二楚,没有那个时间,也没有意义。就算你知道你要做的东西需要算法知识,你需要把《算法导论》先拿来看一遍吗?开发软件最重要的,是对每个功能问出下面的问题:要做什么?做成什么样?要达到怎么的效果?要做到这些,存在哪些没有解决的问题?有哪些现有的技术可以用来解决这个问题?如何验证结果?然后才是去了解那些需要用的技术去解决你的问题。至于具体的知识上面列出的工具要会用吧。熟悉开发流程。这非常重要,比如Commit代码的流程,发布新版本的流程,什么时候做Branch。这些不一定要正经地文档化,但是一定要在团队内部达成共识,否则开发过程就是一片混乱。(人有可能觉得这和问题没直接关系,但是要知道现在的软件开发基本没有一个人进行的,一个人的叫玩玩,爱怎么搞怎么搞。)软件销售。这决定了你的软件1. 是否需要数字版权保护机制2. 是否需要接入支付体系软件运营。这决定了你的软件1. 是否需要技术支持?通过什么途径提供技术支持?2. 是否需要收集用户信息?收集什么信息?实名还是匿名?3. 是否使用第三方服务来降低运营和维护成本?(自己Host还是租?要不要使用GAE构建服务器端?)当地法律。根据当地法律,你的软件,可能会被要求具有下列功能中的一部分:1. 用户信息保护2. 敏感内容过滤3. 审查。(谁在用,用了哪些功能)有人可能觉会得上面这些点太大太泛,但这些的确是开发一款软件要考虑的事情,而且是一开始就要考虑的事情。没太明白题主具体到“Windows”的目的是什么。上面这些,无论是什么平台上的软件,都存在这些问题。Windows之于Linux或是Mac的不同,也就是使用的技术框架上有些差异,这些而差异对于程序员而言不应该是什么问题。因为原理都是一样的, 一样的算法,一样的TCP链接传数据,一样的数据加密,甚至可以做出一样的界面统一用户体验。(当然你也可以做得完全不一样。)

windows

TeamViewer:非常好用,需要每台计算机都按照客户端,然后根据 key 添加设备,也可以使用账户来统一管理设备。就是要商用收费,如果连接多台设备可能会被认为商用而收取费用,强制下线并要求购买。

向日葵:简单易用,也十分不错,也需要安装客户端,然后根据 key 添加设备,也可以使用账户来统一管理设备。免费和会员还是有点东西的。

linux

xshell

ssh

管理项目进度,研发项目管理软件PingCode、Jira、ONES都可以,以我们团队进度管理需求和使用的工具PingCode来说:

1、对迭代进度管理需求——燃尽图

日常中我们需要跟踪迭代期间每天剩余工作量的情况,与理想线进行比较,以预测迭代能否完成目标。

2、团队速率监控需求——团队速递视图

我们会比较历史完成迭代计划和完成的工作量,优化团队工作安排。预测即将到来的迭代能完成的工作。

如果团队效率不在正常状态,那我们就需要去了解每个成员的工作负荷情况,合理优化工作安排。

除了了解工作安排,我们也需要去统计每个人完成任务所需工时数量

这个问题简直就没有什么可想的,无论从功能还是从界面UI,推荐使用idea系列(插件众多,界面可自定义,代码优化提示)

就凭借着三点。

前端使用: WebStorm

Java后端: IntelliJ Idea

Python后端: PyCharm

BugFree是使用PHP+MySQL打造出的一个基于Web的Bug管理工具。BugFree管理工具能帮开发团队进行科学化的bug管理,有效率的bug进行处理,全面降低软件开发中存在的bug问题。主要功能有:

1.产品管理:包括产品、需求、计划、发布、路线图等功能。

  2.项目管理:包括项目、任务、团队、版本、燃尽图等功能。

  3.质量管理:包括bug、测试用例、测试任务、测试结果等功能。

  4.文档管理:包括产品文档库、项目文档库、自定义文档库等功能。

  5.事务管理:包括todo管理,我的任务、我的Bug、我的需求、我的项目等个人事务管理功能。

  6.组织管理:包括部门、用户、分组、权限等功能。

文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐