个人作业-Week 1
1)快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。
Q1:“Scrum Master不是一个官,而是一个没有行政权力的沟通者,就像微软的PM那样。他/她同时还要在团队中做具体的工作。直接把原来的‘经理’变成Scrum Master,大多行不通。”当一个团队在进行敏捷开发的时候,Scrum Master是唯一与外界沟通的人,那么原来的Project Manager应该做些什么呢?
Q2:“微软产品团队三足鼎立的角色分配就是Promgram Manager、开发、测试。“那么,当一个团队的角色之间出现矛盾时,他们都是怎么交流以调和矛盾的呢,有没有什么经验性的方法?
Q3:“另外,软件团队可以分析技术趋势以及产业的变化、社会发展的大趋势,推测用户会产生哪些新的需求。”这些“推测出的新的需求”在用户真正提出来之前是怎么处理的呢,是直接包含在设计中,还是等需要的时候再进行扩展?
Q4:软件团队的“爵士乐模式”具有“不靠谱”的特点,“他们演奏时都没有谱子”。这里的“谱子”反映到软件团队上具体指什么,是指设计文档吗?如果是设计文档,为什么有些软件在没“谱子”的情况下还能做出一个优秀的软件?
Q5:《构建之法》的概论中论述了计算机科学与软件工程的关系。作为一个计算机科学专业的学生,我时常会有一种硬件开发不如电子信息的同学,软件开发又没有软件工程的同学来的专业的感觉,并且我了解到的大多数优秀的计算机科学专业的毕业生最后都从事了软件开发相关的工作。那就找工作方面我们相比软件工程的同学是否不存在任何优势?
Q6:伙伴测试(Buddy Test)能否用结对编程代替?因为我感觉结对编程也可以在签入代码前把重大问题解决。如果不能,是不是因为结对编程的成本比较高?
Q7:《构建之法》第17章强调了团队领导的重要性,团队领导的好坏会对整个团队造成较大的影响。作为一个学生,我也已经在一次次小组合作中体会到了这一点,一般大家都会更加倾向于听从团队里技术最好的同学,但有时候这样的效果并不是很好。因此我想问在一个团队中大家都不怎么熟悉的情况下,怎么样可以选出一个合适的团队领导?
2)请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?
“软件”:
1.1953年8月;
2.在兰德公司的研究备忘录中;
3.Richard R. Carhart;
“软件工程”:
1.1968年;
2.在“阿波罗”太空计划期间,在NASA;
3.Margaret Hamilton;
【附加题】:大家知道了软件和软件工程的起源,请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?(不定期更新)
1.女性在软件工程中扮演的角色:在1970年以前,男人们会在更有声望、更有报酬的硬件工程中扮演角色,他们常常把软件的写作授权给女性,而诸如格蕾丝·霍珀(Grace Hopper)或玛格丽特·汉密尔顿(Margaret Hamilton)这样的传奇人物也填补了许多计算机编程工作。
2.软件工程专业正式开始的标志:1968年和1969年,北约(NATO)科学委员会(NATO Science Committee)赞助了两场关于软件工程的会议(Garmisch,Germany - see conference report),这给了该领域最初的推动力。许多人认为这些会议标志着软件工程专业的正式开始。
3.在软件危机中,一些软件项目甚至造成了生命的损失(当然这个并不有趣):
It was involved in at least six accidents between 1985 and 1987, in which patients were given massive overdoses of radiation.[1]:425 Because of concurrent programming errors, it sometimes gave its patients radiation doses that were hundreds of times greater than normal, resulting in death or serious injury.[2] These accidents highlighted the dangers of software control of safety-critical systems, and they have become a standard case study in health informatics and software engineering. Additionally the overconfidence of the engineers[1]:428 and lack of proper due diligence to resolve reported software bugs, is highlighted as an extreme case where the engineer's overconfidence in their initial work and failure to believe the end users' claims caused drastic repercussions. --引用自《Therac-25 - Wikipedia》
大意:在1985年到1987年间,至少有六起事故发生,其中有大量的辐射剂量。由于并发编程错误,有时它给病人的辐射剂量是正常的数百倍,导致死亡或严重伤害。这些事故凸显了安全关键系统软件控制的危险性,已成为卫生信息学和软件工程的标准案例研究。此外,工程师们的过分自信和缺乏适当的尽职调查来解决报告的软件缺陷,被强调为一个极端的例子,工程师对他们最初的工作过于自信,并没有相信最终用户的索赔引起了激烈的反响。
3)上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
Microsoft TFS:
优点:1.任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用;2.集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM;3.能与 VS 无缝接合;
缺点:1.用浏览器访问相当慢;2.XP 系统无法访问。
Git:
优点:1.版本库本地化,支持离线提交,相对独立不影响协同开发;2.更少的“仓库污染”;3.把内容按元数据方式存储,完整克隆版本库;4.支持快速切换分支方便合并,比较合并性能;5.分布式版本库,无单点故障,内容完整性好;
缺点:1.不支持中文;2.图形界面支持差;3.使用难度大。不易推广;
Mercurial:
优点:1.跨平台;2.命令行简单易上手;3.可扩展性,易于根据用户需求自行定义、扩展;
缺点:1.分支管理不灵活;2.社区支持较差;
GitHub:
优点:1.功能设计简洁,可用性好;2.Git存储库服务,基于web,允许使用Git的源代码管理功能,或者其特性;
缺点:1.国内访问速度太慢;2.不能很好的解决GB2312/GBK,对中文不够友好;3.github:fi贵;
BitBucket:
优点:1.简单易学;2.支持中文;3.私人项目免费;
缺点:1.不开源;
Trac:
优点:1.灵活性高;
缺点:1.功能一般;
Bugzilla:
优点:1.支持中文;2.有强大的定制功能;3.免费;
缺点:1.安装繁琐;
Rational(查到的资料较少):
优点:1.跨平台;
缺点:1.软件体积大;
Apple XCode:
优点:1.编译速度快;2.易于开发和维护;
缺点:1.插件不能随版本及时更新;
个人作业-Week 1的更多相关文章
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- SQLServer2005创建定时作业任务
SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...
- 使用T-SQL找出执行时间过长的作业
有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下: SELECT sj.name , ...
- T-SQL检查停止的复制作业代理,并启动
有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...
- Python09作业思路及源码:高级FTP服务器开发(仅供参考)
高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...
- 个人作业week3——代码复审
1. 软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编 ...
- 个人作业-week2:关于微软必应词典的案例分析
第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其 ...
- 软件工程第二次作业——git的使用
1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的 ...
- hadoop作业调度策略
一个Mapreduce作业是通过JobClient向master的JobTasker提交的(JobTasker一直在等待JobClient通过RPC协议提交作业),JobTasker接到JobClie ...
- SQL SERVER 2008复制数据库时发生执行SQL Server代理作业错误
1. 情况说明 在利用SQL SERVER数据库复制向导,能够很方便的将一个数据库从一台服务器复制到另一台服务器上,具体操作步骤也十分简单. 不过在实际操作过程常发生“执行SQL SERVER代理作业 ...
随机推荐
- css笔记--用户界面样式
1.系统字体,系统颜色.根据关键字设置为系统某方面相同的字体和颜色 2.光标:鼠标移入时光标的不同显示方法,有十字键,手型:cursor:pointer;cursor:hand;要按顺序,cursor ...
- html5复习--canvas
一.简介 <canvas>是html5新增的标签,可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至 ...
- ios应用数据存储方式(XML属性列表-plist) - 转
一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直 ...
- Linux的任务计划管理
在手机中,我们常常使用备忘录或者是闹钟等来提醒我们该做什么事情了,在Linux操作系统中,也有类似的操作. 在Linux中除了用户即时执行的命令操作以外,还可以配置在指定的时间.指定的日期执行预先 ...
- Activity Monitor 闪退 & 无法进入睡眠
情况描述 黑苹果主机突然无法进入睡眠. 考虑到可能是后台程序阻碍了系统正常进入睡眠, 于是想要通过Activity Monitor查看系统的活动情况,然而,Activity Monitor闪退. 重 ...
- iOS Bugly符号化使用分析
前言:一种愉快的开发方式,轻松快速定位BUG,跟开发中的BUG说再见!(公司里开展技术分享会,我就这对Bugly的使用做了个整理) Bugly 使用分析 作者:tangjianfeng 时间:2018 ...
- 4.Operators-操作符(Dart中文文档)
Dart有如下操作符: Description Operator unary postfix expr++ expr-- () [] . ?. unary prefix -expr !expr ~ex ...
- 2017-2018-1 20155231 《信息安全系统设计基础》实现mypwd
2017-2018-1 20155231 <信息安全系统设计基础>实现mypwd Linux pwd命令用于显示工作目录. 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称. p ...
- C++ STL 学习笔记__(5)list
10.2.6List容器 List简介 ² list是一个双向链表容器,可高效地进行插入删除元素. ² list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符.It++(ok) i ...
- 新买的orico蓝牙usb连接器使用方法与驱动
因为买的型号是 BTA-403 ,所以需要下载该型号驱动 安装好后,可能会出现找不到蓝牙设备问题,所以需要重启机器,并且手动将pc蓝牙连接到手机蓝牙,然后手机蓝牙再连接蓝牙耳机,此时蓝牙耳机会显示连接 ...