个人作业1

一.不懂的问题

  1. 如何准确分析用户的需求,并了解客户对我们的要求和我们目前的技术能否实现他们的需求?
  2. 有什么比较有效的方法来提升作为软件工程师的能力?
  3. 团队项目如何合理的分配成员的任务?
  4. 软件开发过程中遇到难以修复的bug时团队中的各个角色应该怎么处理?
  5. 如何有效地对软件进行长期维护?

二. “软件” 和 “软件工程” 这些词汇是如何出现的

软件工程的概念是1968年第一次提出的,“软件工程”一词是Margaret Hamilton在阿波罗计划期间发明创造出来的。

关于软件的第一个理论的诞生还要早于计算机本身的诞生,是由图灵在1935年发表的文章Computable numbers with an application to the Entscheidungsproblem提出的。而这个单词最早出现的出版物是由Richard R. Carhart 于1953年8月出版的书籍。


 

三.目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? 

Microsoft TFS(Team Foundation Server):

  • 优点:任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用;集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM;能与 VS 无缝接合
  • 缺点:搭建、维护tfs比较复杂,硬件要求也比较高。

GitHub

  • 优点:GitHub是一个非常万能的工具。对于任何大小的项目,他都是理想的工具;他也是伟大的web工作流工具。首 先,他可以作为一个版本控制系统和协作工具,用它来发布工作。利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于 ,他支持多人共同完成一个项目,因此你们可以在同一页面对话交流。创建自己的项目,并备份,代码不需要保存在本地或者服务器,GitHub做得非常理想。学习Git也有很多好处。他被视为一个预先维护过程,你可以按自己的需要恢复、提交出现问题,或者您需要 恢复任何形式的代码,可以避免很多麻烦。Git最好的特性之一是能够跟踪错误,这让使用Github变得更加简 单。Bugs可以公开,你可以通过Github评论,提交错误。在GitHub页面,你可以直接开始,而不需要设置主机或者DNS。
  • 缺点:如果,你是Github使用新手,首先的挑战就是摆正心态——需要不断实践和时间。他可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转 化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。这是由设计者决定的,然而,一些人发现 GUI 有点混乱,选择CLI代替。一些开发人员学习主要使用Git命令 ,这样可以解释为什么他们不太喜欢GUI的原因了。稍加练习,命令的学习是不太困难的。然而,你喜欢天天 写命令吗?特别是跟踪项目历史或解决冲突的时候。所以就有了另外一群喜欢GUI的人们。将提交、修改、移 动文件等操作可视化,会有一个更好的体验。而这些,就如之前提到的,需要时间来适应。

Trac

  • 优点:Trac做一个SCM配置管理平台,意味着它有良好的扩充性;Trac的权限体系是比较完备的设计;非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。
  • 缺点:1.不支持多项目 2.需求和缺陷没有分离 3.用 wiki 来替代 Word 等工具编写文档对于产品策划来说门槛太高了 4.中文化不完整,美术人员接触起来困难重重  5.不显示中文名,本地化做得很差 6.核心功能很少,不安装插件基本上没法用。

BUGZILLA

  • 优点:1、BUGZILLA不收费,2、BUGZILLA现在有中文版支持
  • 缺点:1、BUGZILLA只能管理缺陷

Apple XCode

  • 优点:1.可以自动创建分类图表。2.自动提供撤消、重做和保存功能,无需编写任何编码。
  • 缺点:1、 更新版本后,某个插件可能会失效。

 

posted @ 2017-09-26 20:30  zhaobs  阅读(154)  评论(1编辑  收藏  举报