软工个人博客作业

项目 内容
这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 个人博客作业
我在这个课程的目标是 学习敏捷开发的流程,对软件工程有一个系统的认识和实践
这个作业在哪个具体方面帮助我实现目标 阅读教材《构建之法》,对软件工程的含义初步了解

阅读讲义后的疑问

1.在Personal Software Process中谈到

我个人比较重视一个程序员原创的博客, 在面试的时候, 我们别空口吹思想, 一起来看看你写的原创博客吧

我想知道博客对于软件开发人员的重要性很大吗?哪些东西需要写在博客上呢?很多时候写的博客之后自己就不会看了,写出来的博客仅仅是给他人提供参考吗?

2.在结对编程中谈到了结对编程的种种好处,但我有个问题:

如果两人的代码风格习惯有较大差异,例如程序模块的划分、命名习惯差异等,还能保证较高的编码效率吗?

3.在测试的计划和执行 中谈到

测试不是在所有的开发工作完成之后才进行,而是与开发几乎同步进行的。一个软件项目的各个功能都可以有自己的测试计划,它们可以在不同的阶段发挥作用。

而在前面章节又提到了代码自审这一环节,我理解的是开发人员和测试人员要同步的对代码进行测试检查,如果开发人员审查后交给测试人员进行测试,会不会存在工作重复从而导致软件开发效率变低的问题?或者说,开发人员和测试人员的测试任务划分有没有具体的原则和标准?

4.第4章写道

函数最好有单一的出口,为了达到这一目的,可以使用goto。只要有助于程序逻辑的清晰题现,什么方法都可以使用,包括goto

在我之前的印象中,goto语句因为易导致程序的结构混乱所以不推荐使用,而且一般goto语句可以用其他循环语句来实现。因此这里提到的可以使用goto让我感到疑惑,而且我认为使用goto一般也很容易导致程序bug。

5.在软件工程师的职业道德关于软件工程师需要遵循的原则中提到

综合考虑软件工程师,雇主,客户,用户与公众的利益

当雇主、客户、用户和公众之间存在利益冲突时,作为软件工程师一般都会收到来自雇主方面的压力,这个时候应该如何抉择呢?之前爆出的各种app盗取用户隐私信息的新闻都间接反映出这个问题,所以很多时候软件工程师并没有多大权利决定什么。而现在很多大互联网企业中都是产品经理来决定用户需求,这使得程序员变成了一个只负责代码实现的岗位。。。

软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人

在工程环境中,最早的“软件”一词的发表是在1953年8月,Richard R. Carhart在RAND Corporation的研究备忘录中发表的。http://en.wikipedia.org/wiki/John_Tukey

“软件工程”最早是由玛格丽特.汉密尔顿在1965年6月发布的computers and automation的服务清单中提出。

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

按用户数从多到少排序如下(源自wikipedia

各版本管理软件优缺点:

SVN

  • 优点
  1. 不必担心有什么数据损失
  2. 统一控制访问权限控制,利用代码安全管理
  3. SVN会关心所有的文件类型,不需要你来手工操作
  • 缺点:
  1. SVN服务器管理复杂
  2. 不是本地化操作,如果要删除分支,也是需要将远程的分支进行删除,这会导致大家都得同步
  3. 所有操作都需要通过服务端进行同步,这会导致服务器性能要求比较高。如果服务器宕机了就无法提交代码了

Microsoft TFS

  • 优点
    1. 与VS契合
    2. 任务版上能将需求、项目进度一览无余
    3. 对于小团队而言,比甘特图更有用
  • 缺点
    1. 搭建、维护tfs比较复杂
    2. 整个系统是用 asp 实现的,用浏览器访问相当慢

Gitlab

  • 优点
    1. 同样是基于web的git仓库,易于代码的版本管理
    2. 相比于github,提供免费的私有仓库
  • 缺点
    1. 相比于图形界面,命令行操作更流行,因而有一定的学习成本

Github

  • 优点
    1. 有着海量的代码资源
    2. 上手快,设计简洁,代码托管、版本控制比较方便
    3. 提供免费的公有仓库
  • 缺点:
    1. 国内访问速度较慢
    2. 因为是分布式的,每台机器都commit的时候,有的时候忘记了push到远程服务器

Trac

  • 优点
    1. 非常灵活,可定制自由度高
    2. 权限体系比较完备
  • 缺点
    1. 用户偏少
    2. 中文化不完整
    3. 核心功能少,不装插件没法用

Bugzilla

  • 优点
    1. 开源
    2. 有中文版本支持
    3. 网络用户界面友好
  • 缺点
    1. 只能管理缺陷

动手实践

Git:

Github:

原文地址:https://www.cnblogs.com/wanzf-bky/p/12442087.html