个人作业-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代理作业 ...
随机推荐
- centos下Zabbix Agent端部署和安装
首先重复一下前面的规划 server端: 192.168.136.144 centos6.5 (虚拟机) agent端: 192.168.136.155 centos6.5( 虚拟 ...
- 什么是X86和X86-64
X86的定义 X86是一个Intel或AMD通用计算机系列的标准编号缩写,也是32位微处理器架构的一种,也标识一套通用的计算机指令集. X86-64的定义 X86-64,简称X64,是一个Intel或 ...
- 文本处理三剑客之 grep/egrep
grep:文本过滤工具 支持BRE egrep: 支持ERE fgrep: 不支持正则 作用:根据用户指定的“模式”,对目标文本逐行进行匹配检查,打印匹配到的行 模式:由正则表达式字符及文本字符所编写 ...
- Redis高级应用——2
Redis-事务 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作,事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的 ...
- mysql java 类型对照 int
Java MySQL数据类型对照 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述 VARCHAR L+N VARCHAR java.lang.S ...
- python基础学习1-三元表达式和lambda表达式
#!/usr/bin/env python # -*- coding:utf-8 -*- 三元运算 if else 的简写 name ="alex" if 1==1 else &q ...
- 【转载】MFC的Main函数跑哪去了
原文:http://blog.csdn.net/weiwenhp/article/details/8455471 习惯的思维 用习惯了C的人要看一个程序时首先会想到找到那个main函数在哪,然后再顺着 ...
- HDU - 5289 Assignment (RMQ+二分)(单调队列)
题目链接: Assignment 题意: 给出一个数列,问其中存在多少连续子序列,使得子序列的最大值-最小值<k. 题解: RMQ先处理出每个区间的最大值和最小值(复杂度为:n×logn),相 ...
- Excel表格生成sql语句
假如excel表格中有A.B.C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age ,在你的excel表格中增加一列,利用excel的公式自动生成sql语句,方法如下: ...
- 从零搭建HBase集群
本文从零开始搭建大数据集群,涉及Linux集群安装搭建,Hadoop集群搭建,HBase集群搭建,Java接口封装,对接Java的C#类库封装 Linux集群搭建与配置 Hadoop集群搭建与配置 H ...