您的位置:首页 > 产品设计 > UI/UE

Individual Homework -----questions about the text book by 张静

2011-10-09 21:33 267 查看
老师让我们从三本教科书中选一本作为这次作业的提问对象。我在代码大全和移山之道之间徘徊了很久,最终还是选择了”瘦小型“的移山之道。软件开发并不是横亘在人们面前的一座山,而是联通现代生活的一座桥。如何高效快速的架起这座桥才是我们要移去的山,是我们要寻的”道“。

Q1:何为MSF敏捷开发模式,敏捷又是如何实现的?

敏捷算是这本书里比较抢眼的字眼了,书里的原话是“MSF敏捷开发模式吸收了近几年来在软件业界流星的各种敏捷开发模式的优点,认识到目前大部分软件是以网络应用相联系,强调和用户更紧密的交流,快速迭代,避免不必要的过程”。敏捷就是速度的最大化,要注

重简易,消除不必要的复杂,带给用户最后和最直接利益的方法。在寻找“敏捷模式”的踪迹是发现了敏捷联盟宣言,堪称为敏捷方法的精髓啊。

敏捷联盟宣言: 个体与交互胜过过程与工具;

可以工作的软件胜过面面俱到的文档;

客户协作胜过合同谈判;

响应变化胜过遵循计划。

书中介绍的关于MSF敏捷开发模式的特点都可以看到以上四点的影子。MSF for Agile Software
Development过程框架以Scrum模型为基础导向扩展,并且结合了VISUAL STUDIO
2010工具的众多特性,从而成为微软了.NET相关技术人员手中不可多得的利器。Scrum是一个增量迭代的过程。在team work 中我们用的就是这种开发模式。已经完成的几次daily scrum还是很有效率的,虽然很痛苦。总的说来,MSF敏捷开发模式是自组织团队与客户之间的紧密协作,是通过高度迭代式、增量式的软件开发过程响应变化,并在每次迭代结束时交付经过编码与测试的有价值的软件的方法。

Q2:本书设计了一个虚拟小说的框架,一系列发生在团队成员之间的故事和对话贯穿始终,这样的行文方式到底有什么好处?

首先,在我看来用这种故事化的描述方式让软件开发这个枯燥的主题多了一丝活泼轻松,更具有可读性。这样的独特才能有自己的风格。毫无疑问,移山之道如此成功,这种故事化的情节功不可没。
其次,通过这段时间的team work, 我也深刻的感觉到软件开发不仅仅是写好代码那样简单,真正的挑战在于管理,合作和机制。而这些东西都是人与人之间发生的事情,其本身的复杂性只有在实践中才能体现出来,无法用形式化的方式概括。而跟随一个虚拟的真实team来体察这些无疑是种有效途径。VSTS中的T就是team,想要说清楚VSTS到底是什么,没有什么比直接展示一个生动team的工作流程更直接的方式了。

Q3:第7章讲述软件测试的方法名目繁多,简直应有尽有,如何有效选择最适宜的测试方法呢?

看到了那么多测试方法,我和书中阿毛的感觉一样,脑袋好像装不下了,知道了方法不会用也是枉然。阿超很及时的做了总结。任何事物都有一个发展流程,在软件开发的生命周期的不同阶段有不同的测试选择。在远景和计划阶段,此时测试只是出于计划阶段,主要讨论测试计划和测试设计说明书,收集用户对于软件非功能性的需求,做一些准备工作。开发阶段,开发人员来写单元测试,测试人员写BVT(Build Verification Test).

4:书里面154页给出了一段代码清单来测试看懂他人写的代码的能力。很惭愧的是,看了很久,没有看明白


附上代码一段

namespace findnumber
{
class Program
{
static void Main(string[] args)
{
int[] rg = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31 };
for (Int64 i = 1; i < Int64.MaxValue; i++)
{
int hit = 0;
int hit1 = -1;
int hit2 = -1;
for (int j = 0; (j < rg.Length) && (hit <= 2); j++)
{
if (i % rg[j] != 0)
{
hit++;
if (hit == 1)
{
hit1 = j;
}
else if (hit == 2)
{
hit2 = j;
}
else break;
}
}
if ((hit == 2) && (hit1 + 1 == hit2))
{
Console.WriteLine("found {0}", i);
}

}
}
}
}
这个真没看懂??


不过第二天好像有点明白了。找的是2到31这30个数字里面某28个数的公倍数,被hit1和hit2标记的也就是剩下的那两个数不能被这个公倍数整除而且必须相邻。知道了找什么,再找到它就比较easy 了,就一组一组的试呗.{2,3}{3,4}{4,5}{5,6}……这个过程就很快了发发现除去{16,17},2到31这28个数的最小公倍数为2*3*2*5*7*2*3*11*13*19*23*5*3*29*31 = 2123581660220,所以这样的数是存在的,最小值就是已给出的最小公倍数。

Q5:随着科技的不断创新,技术的不断进步,软件产业也在这股浪潮留下了不短的历史,那么它在不久的将来有什么变化趋势呢?

软件产业已经呈现出了一些引人入胜的转变迹象。软件产业的网络化趋势:软件在网络技术中的作用,想半导体`光纤在通信发展过程中的作用一样,扮演者越来越重要的角色。网络化,人性化,个性化的软件将使技术不再成为人们沟通的障碍。软件产业的服务化趋势:网络革命所带来的服务化趋势为软件产业开辟了成本更低,效率更高的新的获利途径,使用户能够获得更加简洁,更加全面的服务享受。网络化智能化的软件也许已经在你的不知不觉中自动完成所需要的升级工作。软件产业的全球化趋势:过去在计算机领域有许多封闭的技术和标准,如今在强调开放性交互性的时代,这种做法显然是行不通了。国际多数知名IT企业支持主流的开放式标准,反对任何封闭甚至保密的规则。就像这本移山之道,作者无保留的分享了微软的软件开发的工作经验,列举了很多微软的具体做,这就是一种顺应潮流的豁达行为并且彰显了大型软件企业的大家风范。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: