软工第1次个人作业


一、快速看完整部教材,列出你不懂的5-10个问题,发布在你的个人博客上。

1、文中提到“积累问题领域的知识和经验(例如:对医疗或金融行业的了解)。”然而我们如何定位自己问题的领域呢?对于现在的我们是不是应该多看看其他行业的知识呢?

2、在文中作者说:“MSF提倡自下而上的计划,每个人有充分的权力估计并决定自己的任务需要多长时间,而不是上级交给的时间,这意味着让真正做这件事的人按照自己的估计去完成任务。”对于这一点,我有疑问,如果像MSF这样充分授权,又能怎样保证所有人能正确的估计时间,不会偷懒也不会使得自己任务过重呢?据我了解,对于平时作业来说都有一个ddl,如果像MFS所说的充分授权,就有可能有些人不会去完成这些作业,我认为还是得有一定的控制。

3、文中作者提到“投资要讲时机,比如说对于某项技术的培训,最好的做法是在即将需要的时候进行培训。太超前或滞后都不灵。”,如何恒定即将需要这个范围,对于我们的学习来说,这些知识我们不一定能够立马用到,所以说安排的课程是不好的时机么?

4、文中作者提到“问: 如果我要做一件事情,但是周围的人有不少不同意见,短时间又不能完全说服他们,怎么办? 答: 对此事负责任的角色要自己拿主意。”,确实对于一件事情,自己需要负责任,但是有的时候确实是大家都反对有可能是自己不对,这个时候如何能很好的权衡呢?同样,站在旁观者的角度,提出建议是出于帮助的想法,如果会扰乱到主事的人思考,那是不是不提会更好点?

5、文中提到了很多测试的方法,正如书中所说,软件开发有周期,而对于在每一个阶段,我们应该如何权衡测试的比重呢?

6、“但是在现实中,好的主意不一定赢。”作者还通过键盘的例子和衡量制度的例子加以佐证,但我不这样认为,对于键盘而言,人们只是按照习惯使用了QWERTY键盘,然而只是因为历史习惯,不意味着不能改变,倘若在很大范围内推广Dvorak键盘,从长远的角度来说,也不一定会不流行,何况基本所有创新的东西都要一个周期,在早期一般不太容易让人接受,因为人们已经习惯了以前的方式,但随着时间的推移,好的东西会显现出来。

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

  • “软件”是由1935年图灵在一篇题目为“omputable numbers with an application to the Entscheidungsproblem (decision problem)”的论文中提出的
  • “软件工程”是1968 年北大西洋公约组织在前联邦德国开会提出的

[附加题]大家知道了软件和软件工程的起源,请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?

1952年,适逢美国大选。为了对选举资料进行处理,哥伦比亚广播公司租用了UNIVAC,用来预测大选结果。选举结束后仅仅45分钟,UNIVAC就计算出艾森豪威尔将以438票的绝对优势赢得胜利。但在选举前,几乎所有的专家和媒体都预测竞选双方势均力敌。所以对于计算机的预测结果,广播公司拒绝报道。工程师们只好重新计算,但该计算机仍坚持艾森豪威尔将大获全胜。当选举结果正式揭晓后,所有的人都惊呆了:艾森豪威尔实际得票为442票,UNIVAC的预测只有不到1%的误差率!从此,整个世界开始对电子计算机的功能有了新的认识,电子计算机的发展进入了一个新时代。

三、上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? (提示:搜索一下Microsoft TFS、Git、Mercurial、GitHub、Bitbucket、Trac、Bugzilla、Rationale,Apple XCode)?

  • Microsoft TFS

    • 优点

      • 集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM
      • 能与 VS 无缝接合
      • 是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持
    • 缺点
      • 能应用起来的团队、公司的数量极少
      • 用浏览器访问慢,从 IE 上访问、填写各种开发、测试记录慢
  • Git
    • 优点

      • 分支能力特别强大
      • 支持离线提交,分布式推送拉取,使得代码层面的协作相当流畅
      • 免费、开源的
      • 对程序源代码进行差异化的版本管理,代码库占极少的空间
    • 缺点
      • 图形界面支持差
      • 不支持中文
      • 使用难度大
  • Mercurial
    • 优点

      • 命令行简单、容易上手
      • 有revset,扩展性,append only的存储结构
      • 服务器部署相对容易
      • 跨平台、封装好
    • 缺点
      • 分支管理不灵活
      • 支持社区略差
  • GitHub
    • 优点

      • 基于web
      • 提供Git存储库服务,允许你使用Git的源代码管理功能
      • 功能设计简洁实用上手很快
      • github Markdown支援很好
      • 开源项目多
      • 支持多人共同完成一个项目
      • 代码不需要保存在本地或者服务器
    • 缺点
      • 免费套餐不支持私有项目
      • GUI需要时间来适应
  • Bitbucket
    • 优点

      • 支持私有免费项目
      • 支持Hg,支持Git
      • 完全免费的闭源项目,支持5人以内的合作开发
    • 缺点
      • 网页端的git仓库不如github好用
      • 搜索界面简单
  • Trac
    • 优点

      • 非常灵活
      • 可以和SVN集成
      • 有良好的扩充性
      • 权限体系是比较完备
    • 缺点
      • 功能不是很强大
      • 不支持多项目
      • 需求和缺陷没有分离
      • 不显示中文名,本地化做得很差
      • 核心功能很少,不安装插件基本上没法用
  • Bugzilla
    • 优点

      • 免费
      • 有中文版支持
      • 强大的检索功能
      • 强大的后端数据库支持
      • 丰富多样的配置设定
    • 缺点
      • 快速搜索结果不准确
      • 只能管理缺陷
      • 界面不够友好
      • 汉化版容易出现乱码
  • Apple XCode
    • 优点

      • 编译速度极快
      • 自动提供撤消、重做和保存功能
      • 可以自动创建分类图表
      • 无需编写任何编码
      • 便捷的代码管理器
    • 缺点
      • 只为iOS和Mac开发而设计
      • 更新版本后,某个插件可能会失效

[2017BUAA软工]第1次个人作业的更多相关文章

  1. [2017BUAA软工助教]第0次作业小结

    BUAA软工第0次作业小结 零.题目 作业链接: This is a hyperlink 一.评分规则 本次作业满分10分: 按时提交有分 一周内补交得0分 超过一周不交或抄袭倒扣全部分数 评分规则如 ...

  2. [2017BUAA软工]第3次个人作业

    软工第3次个人作业--案例分析 一. 调研,评测 1.软件的bug(至少两个,不少于40字) 测试软件: 必应词典移动端 测试平台:iPhone 6 bug1 对于翻译功能中的图片翻译功能,必应词典是 ...

  3. [2017BUAA软工]第2次个人作业

    软工第2次个人作业--代码复审 一.代码复审Check List 1.概要部分 代码能符合需求和规格说明么? 能正确处理题目要求,代码能符合需求和规格. 代码设计是否有周全的考虑? 能正确生成和解出数 ...

  4. [2017BUAA软工]第0次个人作业

    第一部分:结缘计算机 1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 我觉得我选择计算机系完全是误打误撞吧.当时我的分数上北航是没问题的,所以填专业时就是机械,电气,自动化,计算机等 ...

  5. [2017BUAA软工]第零次博客作业

    第一部分:结缘计算机 1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 当年高考前在专业这件事上纠结了好久,因为我对于大学各个专业具体学什么都不甚了解,于是就迟迟没有明确的目 ...

  6. [2017BUAA软工]第二次博客作业:代码复审

    〇.comment链接 https://github.com/hanayashiki/Sudoku/issues/1 一.代码复审 1.概要部分 (1)代码能符合需求和规格说明么? 经测试,对于合法输 ...

  7. [2017BUAA软工助教]收集个人信息

    如题 我们要收集三个东西 1.学号 2.Github地址 ① 3.博客园博客地址 ② 请各位同学自行创建,并按照如下的格式评论在这篇博客下 "14061195+https://github. ...

  8. 《软工实践》第零次作业 - 一些QA

    <软工实践>第零次作业 - 一些QA Q&A (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 你认为过去两年中接触到的课程是否符合你对计算机 ...

  9. [福大软工] Z班 团队第一次作业—团队展示成绩公布

    [福大软工] Z班 团队第一次作业-团队展示成绩公布 作业地址 http://www.cnblogs.com/easteast/p/7511264.html 作业要求 队员姓名与学号(标记组长),其中 ...

随机推荐

  1. 使用maven构建scala项目

    eclipse安装scala插件和m2e-scala并不是支持的很好,因此使用maven创建scala工程的时候,IDEA可谓是最好的开发利器. 1. 创建工程之前的准备 2. IDEA界面创建Sca ...

  2. VB6 red write DB using Microsoft DAO 3.6 Object Library

    ' -----------------------------read db Private Sub Form_Load() 'MsgBox App.Path & "\wgscd.m ...

  3. 20155237 2016-2017-2 《Java程序设计》第3周学习总结

    20155237 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 对象:存在的具体实体,具有明确的状态和行为. 类:具有相同属性和行为的一组 ...

  4. 180807-Quick-Task 动态脚本支持框架之Groovy脚本加载执行

    Quick-Task 动态脚本支持框架之Groovy脚本加载执行 上一篇简答说了如何判断有任务动态添加.删除或更新,归于一点就是监听文件的变化,判断目录下的Groovy文件是否有新增删除和改变,从而判 ...

  5. 一个IT男的表白

    致BCD6 CEC0 C3F4 转一轮肩胛骨 倒一杯铁观音 白驹过隙,倏忽两秋 远方有希望和梦想 有火车.微信美颜视频聊天和碧根果 有你的支持 如果身旁没有你 生活无趣失去动力 就像python失去类 ...

  6. oracle数据库之rownum和rowid用法

    Rownum 和 Rowid是Oracle数据库所特有的,通过他们可以查询到指定行数范围内的数据记录.   以下通过例子讲解: -- 为了方便,首先,查找dept表中的所有. select deptn ...

  7. Java字符串连接操作的性能问题

    首先,看一段实验程序: package com.test; class StringTest { public static void main(String[] args) { long start ...

  8. Erlang运行时中的无锁队列及其在异步线程中的应用

    本文首先介绍 Erlang 运行时中需要使用无锁队列的场合,然后介绍无锁队列的基本原理及会遇到的问题,接下来介绍 Erlang 运行时中如何通过“线程进度”机制解决无锁队列的问题,并介绍 Erlang ...

  9. Tomcat之初识初体验

    1.what's this? Stable performance, free Java web application server! 相关: Java,Javac,JVM,JRE,JDK,Java ...

  10. Python 中的一些小技巧

    这里是本人收集的一些 Python 小技巧,目前主要是一些实用函数,适合有一定基础的童鞋观看(不会专门介绍使用到的标准库函数).. 一.函数式编程 函数式编程用来处理数据,感觉很方便.(要是再配上管道 ...