软工-第一次博客做业

项目 内容
这个做业属于那个课程 班级博客
这个做业的要求在哪里 做业要求
我在这个课程的目标是 学习软件工程相关知识,锻炼软件开发能力。
这个做业在哪一个具体方面帮我实现目标 阅读教材,大致理解软件工程
做业正文 做业正文

1、阅读教材并提出问题

1.对第二章中单元测试标准的疑问

做者在书中只以一个简单类的单元测试为例,但实际的软件工程中每每涉及到GUI/数据库等状况,每种类型的单元测试具体如何分析?是否每一个项目的每一个part都要作到代码路径全覆盖?html

我查了资料,如下的回答比较有启发性:java

回答1针对单元测试具体内容作出了一些解答。git

回答2则给出了单元测试的5个级别,以及经常使用场景的级别划分。程序员

2. 关于第四章结对编程的疑问

​ 在目前的网络授课环境下,结对编程的沟通成本更高了,会不会致使效率降低?在初学入门与空间隔离的条件下,如何保证结对编程的效率呢?github

3. 关于第六章敏捷编流程的疑问

6.2节中对敏捷流程各部分会碰到的问题作了总结。但彷佛并无给出部分问题的解法。若团队成员基本都是初见软件工程,一个最直观的问题是:在以后的团队流程中,如何获得各个流程的量化评价?web

注意到书中连接10提供了Scrum视频培训,但限于时间因素,还没来得及所有观看。数据库

(注:阅读后续章节发现有部分解释,但仍偏理论,而且也并未给出具体量化)编程

4.关于第9章项目经理的疑问

PM作开发和测试以外的全部事情。后端

书中对PM的职责进行了详细的描述,并对如何作好PM给出了必定的建议。但实际状况下,初入门的PM是否真的能完成这么多的职责?这个职位在课设中是否真的有意义,而不是沦为一个挂名职位呢?另外,做为组内程序员,在出现问题甚至矛盾时,如何配合PM完成各项工做?网络

5.关于第16章迷思之六

迷思之六,技术是创新的关键。

书中以铱星计划为例,说明科研技术不等于创新。我在查看铱星计划的相关资料后,发现其失败是创建在跨国家,组织,技术和多个管理层面的,巨型的,复杂的技术创新管理体系的失败,一系列复杂的缘由致使了铱星计划的破产,不能仅仅将其归咎于创新。做者在后续内容中以用户体验一节的茶壶案例说明了相似的观点。但我认为科技的发展很大程度标志着创新,好比目前的手机行业,摄像头设计均为挖孔与升降式结构,此时在摄像头隐藏上取得突破,让用户取得更高的屏占比,就能够引导行业进一步发展。

2、请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 什么时候、何地、何人?

软件一词,由John Tukey在于1958年发表的论文“The Teaching of Concrete Mathematics”中提出。

软件工程,则由Margaret Hamilton于阿波罗11号软件开发周期内提出。

地点则均为美国。

3、你们知道了软件和软件工程的起源,请问软件工程发展的过程当中有什么你以为有趣的冷知识和故事?

分享一则关于菜单的冷知识,世上第一个游戏彩蛋由Warren Robinett(沃伦·宾耐特)在开发第一个动做冒险游戏《adventure》时完成。因雅达利公司时任管理者不容许将制做人名字印在游戏卡带上,沃伦设计并制做了下图的隐藏关卡。

4、上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?

用户数目列表
管理软件名 用户数 项目数
GitHub 31,000,000 100,000,000
Bitbucket 5,000,000 Unknown
Launchpad 3,965,288 40,881
SourceForge 3,700,000 500,000
GitLab 100,000 546,000
GNU Savannah 93,346 3,848
OSDN 54,826 6,294
优缺点分析:
管理软件名 优势 缺点
Microsoft TFS 是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持。任务版上能将需求、项目进度尽收眼底,对于小团队而言,比甘特图更有用。 能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。
GitHub GitHub提供Git存储库服务,基于web,容许你使用Git的源代码管理功能,或者其特性。 若是有不公开的专案的话,须要付费,没有一个很清楚的图表能够看清楚全部专案的milestone due day顺序,没有甘特图能够看,只有英文界面
Trac 很是灵活,能够为所欲为控制能够和SVN集成,权限设置比较完善,且是一个SCM配置管理平台,意味着它有良好的扩充,权限体系完善 不支持多项目,需求和缺陷没有分,用 Wiki 来替代 Word 等工具编写文档提升了学习成本,中文支持很差,核心功能不多,须要配合插件使用。
Bugzilla 检索功能强大,后端数据库支持好,中文化支持完整。 快速搜索结果不许确,只能管理缺陷
Mercurial 有revset,扩展性,append only的存储结构,易于掌握,对新手友好 只容许两个分支进行合并。
Apple XCode 编译速度极快,每次操做都很快速和轻松。自动提供撤消、重作和保存功能,无需编写任何编码。 更新版本后,某个插件可能会失效。

参考1

参考2

5、调查完目前流行的源程序版本管理软件和项目管理软件后,请你选择其中至少2个软件来进行动手实践,对每一个软件的要求以下:

  1. 下载和安装软件。
  2. 使用软件中的某个功能(例如,建立一个 bug,而后关闭这个bug),并进行屏幕截图。
  3. 把屏幕截图的照片放到博客中,要求该照片可以证实 是你在使用这个软件,好比在旁边放一下本身的博客首页。
  4. 简要谈一下你使用该软件后的见解。

查找后发现上述管理软件大部分都使用Git,所以下面用了Github和Gitee举例,

Github

gitee码云

此前利用gitee搭建了一个静态的我的博客(本来仓库在github上,但访问速度过慢,所以搬运到了gitee),仓库以下

相相似的Bitbucket、Gitlab等都是采用Git管理,整体用户体验较为一致。

相关文章
相关标签/搜索