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的更多相关文章

  1. python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)

    类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...

  2. SQLServer2005创建定时作业任务

    SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...

  3. 使用T-SQL找出执行时间过长的作业

        有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:   SELECT sj.name , ...

  4. T-SQL检查停止的复制作业代理,并启动

        有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...

  5. Python09作业思路及源码:高级FTP服务器开发(仅供参考)

    高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...

  6. 个人作业week3——代码复审

    1.     软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编 ...

  7. 个人作业-week2:关于微软必应词典的案例分析

    第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其 ...

  8. 软件工程第二次作业——git的使用

    1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的 ...

  9. hadoop作业调度策略

    一个Mapreduce作业是通过JobClient向master的JobTasker提交的(JobTasker一直在等待JobClient通过RPC协议提交作业),JobTasker接到JobClie ...

  10. SQL SERVER 2008复制数据库时发生执行SQL Server代理作业错误

    1. 情况说明 在利用SQL SERVER数据库复制向导,能够很方便的将一个数据库从一台服务器复制到另一台服务器上,具体操作步骤也十分简单. 不过在实际操作过程常发生“执行SQL SERVER代理作业 ...

随机推荐

  1. oracle 表的创建与管理 约束

    在 Oracle 之中数据表就被称为数据库对象,而对象的操作语法一共有三种:· 创建对象:CREATE 对象类型 对象名称 [选项]:· 删除对象:DROP 对象类型 对象名称 [选项]:· 修改对象 ...

  2. ios学习路线—Objective-C(装箱和拆箱)

    概述 从前面的博文我们也可以看到,数组和字典中只能存储对象类型,其他基本类型和结构体是没有办法放到数组和字典中的,当然你也是无法给它们发送消息的也就是说有些NSObject的方法是无法调用的,这个时候 ...

  3. 给button增加下划线

    如何给button增加下划线简单版   - (void)setUnderLineForButton:(UIButton *)btn withTitle:(NSString *)title{ //利用富 ...

  4. MySQL数据库 utf-8与utf8mb4

              MySQL的“utf8”实际上不是真正的UTF-8.          MySQL中的“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节. MySQL ...

  5. Redis简介和常见的面试题

    redis介绍及特点 Redis是由意大利人Salvatore Sanfilippo开发的一款内存内存高速缓存数据库. Reids全称为:Remote Dictionary Server(远程数据服务 ...

  6. AWVS使用手册

    目录: 0×00.什么是Acunetix Web Vulnarability Scanner ( What is AWVS?) 0×01.AWVS安装过程.主要文件介绍.界面简介.主要操作区域简介(I ...

  7. mybatis第二天_拓展——与spring整合以及逆向工程

    一.整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代 ...

  8. STM32通用定时器配置

    一.STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生.其它6个 ...

  9. 洛咕 P2494 [SDOI2011]保密

    出题人没素质啊,强行拼题还把题面写得又臭又长. 简单题面就是有一张图,每条边有两个权值\(t,s\),有无限支军队,一支军队可以打一个点,代价是从n到这个点的路径的\(\frac{\sum t}{\s ...

  10. cogs2479 偏序 cdq+树套树

    cdq+树状数组套替罪羊树. cdq归并a,树套树解决b,c. 记住平衡树树根不能暴力清零!!! // It is made by XZZ #include<cstdio> #includ ...