软件工程第一次阅读作业
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 软件工程课程 |
这个作业的要求在哪里 | 第一次阅读作业 |
我在这个课程的目标是 | 掌握现代软件工程的基本知识,与团队一起进行软件开发。 |
这个作业在哪个具体方面帮助我实现目标 | 让我阅读《构建之法》对软件工程有了基本的了解,并让我带着问题进入之后的学习中去。 |
一、阅读教材后的问题
问题1.第12章 用户体验 12.3 评价标准 3. 用户有控制权
书中对于用户要有控制权的这部分写到
“操作失误可回退,要让用户可以退出软件。”
而目前手机上的软件几乎都没有退出的功能,大家一般都是通过多任务界面关闭软件的后台来退出软件。家中的老人常常向我询问为何手机很卡,我一打开发现后台有几十个软件,都是不使用了但是没退出的。请问对于现在这种手机软件普遍没有退出功能的这个现象是合理的设计吗?
问题2.第12章 用户体验 12.3 评价标准 6.帮助用户识别、诊断并修复错误
书中对于用户提交反馈意见写到
“让所有的用户都可以通过电子邮件或者表单来提交反馈意见。”
在我的朋友中,绝大多数人在使用软件时遇到软件出问题时,并不会同意上传反馈信息,而是会选择立即关闭软件。在使用一些手机软件时,第一次打开时会弹出类似“”是否加入用户体验计划,上传使用的数据帮助我们进行改进“这样的提示,很多人都会不同意。请问在实际的软件开发中有何方法能够真正的鼓励用户提交反馈?
问题3.第13章 软件测试 13.2.4 “探索式”的测试(Ad hoc Test)
前段时间出现的微信翻译的bug,例如微信把“you play basketball like caixukun"翻译成“你篮球打得真好”。
这种bug如果在软件测试过程中没有被发现,但是在发布之后被用户发现,这种问题的责任要归于谁呢?
问题4.第9章 项目经理
书中对于在校学生如何为成为PM做准备写到
在校学生可以通过下面的方式锻炼自己的PM能力:
- 参加多种社团并组织一些活动。
- 选修各种相关学科的课程。
- 争取在实际的企业中实习。
- 和小伙伴一起搞点小生意、小创业。
想问相关的课程有哪些?
在企业中实习单位会让实习的学生接触到PM的工作吗?
问题5.第16章 16.5创新和作坊
书中对“Workshop”进行了介绍,我想问的是在毕业之后,如果同时有进入正规大企业和小作坊的机会,该如何选择?我在各种论坛上也查看了一些回答,支持两种的都有,想问一下老师会给出怎样的建议。
二、“软件”和“软件工程”这些词汇是如何出现的
- “软件”是由Richard R. Carhart 在1953年的 Rand Corporation Research Memorandum (兰德公司研究备忘录)中提出的。
- “软件工程”是在1965年6月的计算机与自动化的期刊中提到的,后来在1968年北大西洋公约组织在前联邦德国召开的科技委员会上正式提出的。
三、软件工程发展的过程中我觉得有趣的冷知识和故事
- 图像处理算法中使用最广的一幅图片来自《花花公子》杂志:
40年来一幅被称作Lena的图片被应用为图像处理方案中的泛用性标准测试素材,但它是来自《花花公子》杂志1972年11月刊的插页。
四、目前流行的源程序版本管理软件和项目管理软件及其优缺点
软件名称 | 用户数量 | 优点 | 缺点 |
---|---|---|---|
GitHub | 31,000,000 | 免费使用 不需要设置主机或者DNS 创建自己的项目,并备份,代码不需要保存在本地或者服务器 支持流畅的版本合并和分割 |
上手较难 需要不断实践和时间 |
Bitbucket | 5,000,000 | 对于小团队免费 一个集成的查询管理系统 集成Jira工具。BitBucket和Jira在整个开发阶段都做了整合,通过集成的错误跟踪组件,JIRA自动更新有关检测到的问题的信息。 支持Git,CodePlex,Google Code,HG,SourceForge,SVN导入。 |
不开源 系统不稳定 |
GitLab | 1,000,000 | 免费使用 用户可以拥有无限数量的私有存储库 与LDAP(轻量级目录访问协议)集成,允许在Internet上定位和访问各种资源 GitLab EE支持多种LDAP服务和组同步 |
界面相对较慢 |
Microsoft TFS | 未知 | 高度集成主流的开发工具和常见的办公工具 高度集成研发团队的工作项目 提供基于开放工具的便捷的代码评审机制 自动化生成和发布 |
搭建、维护tfs比较复杂,硬件要求也比较高 |
Apple XCode | 未知 | 可以运行于Mac操作系统 是开发macOS 和 iOS 应用程序的最快捷的方式 具有统一的用户界面设计 |
只能在Mac上使用 更新版本后,某个插件可能会失效 |