首页 > 代码库 > 软件工程第一次作业补充

软件工程第一次作业补充

?在一周之内快速看完《构建之法》,列出你不懂的5-10个问题。

不理解的问题:

?如何精确的获取用户需求,分而治之?

   我看了第八章需求分析第三小节 (软件开发的过程就是用户最需要的东西在链条中传送、转换、实现、扭曲或丢失的过程)有了这个问题,我查了资料有这些说法(“市场营销,就是“通过改变影响用户产品购买决策的各种因素,实现争夺用户或激发用户消费的目‘‘,对产品运营人员来说,无非是解决“吸引新用户、掠夺竞品用户、留住现有用户、促使用户购买、促使用户购买更多”等实际问题,产品运营人员需要去不断了解用户需求,改善市场策略,而市场调研是了解用户需求最常用的方法。用户认为折扣、品质、服务、口碑在其选择时最重要,实际选择时网站知名度、用户口碑作用更加突显,这其实反映了:团购市场发展初期,用户对市场缺乏信心、对商家信誉缺乏信心;对用户来说,网站知名度大、用户口碑好意味着产品、服务有保障,本质上还是用户对品质、服务的需求;而折扣、促销则显然反映了用户对团购优惠实惠的本质需求。‘‘)根据我的实践,我得到这些经验(产品运营人员需要去不断了解用户需求,改善市场策略。)但我还是不太懂(分而治之)。

?典型的软件团队模式和开发流程都有那些?各有什么优缺点?

   我看了第五章团队流程有了这个问题,我查了资料有这些说法(‘‘软件团队的模式:a、主治医师模式b、明星模式c、社区模式d、业余剧团模式e、秘密团队f、特工团队g、交响乐团模式 h、爵士乐模式i、功能团队模式j、官僚模式等。开发流程是指一群人在一起做软件开发,总是要有一些方式方法。我们在开发、运营、维护软件的工程中有很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效果,以及提升用户满意度、软件的可靠性和可维护性。 a、写了再改模式b、瀑布模式c、瀑布模型的各种变形d、Rational统一流程e、老板驱动的流程f、渐进交付的流程。‘‘)根据我的实践,我得到这些经验(‘‘团队合作指的是一群有能力,有信念的人在特定的团队中,为了一个共同的目标相互支持合作奋斗的过程。它可以调动团队成员的所有资源和才智,并且会自动地驱除所有不和谐和不公正现象,同时会给予那些诚心、大公无私的奉献者适当的回报。如果团队合作是出于自觉自愿时,它必将会产生一股强大而且持久的力量。‘‘)但我还是不太懂(如果是非团队的情况下怎么办以及软件的可维护性)。

?软件的开发模式分别指那些?

   我看了第十一章软件设计与实现有了这个问题,我查了资料(快速原型模型:需要迅速造一个可以运行的软件原型,以便理解和澄清问题)快速原型模型允许在需求分析阶段对软件的需求进行初步的非完全的分析和定义,快速设计开发出软件系统的原型展示待开发软件的全部或部分功能和性能。过程:用户对该原型进行测试评定,给出具体改善的意见以及丰富的细化软件需求,开发人员进行修改完善。增量模型:采用随着日程时间的进展而交错的线性序列,每一个线性产生软件的一个可发布的“增量”,第一个增量往往就是核心的产品。与其他模型共同之处:它与原型实现模型和其他演化方法一样,本质都是迭代。)根据我的实践,我得到这些经验(快速原型模型的优点是克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,增量模型的优点是人员分配灵活,一开始不需要投入大量人力资源,增量能够有计划的管理技术风险)但我还是不太懂(如果增量包之间存在相交的情况且未很好处理该如何解决)。

?如何在软件开发和测试中做风险管理?

   我看了第十一章软件设计与实现、第十三章软件测试有了这个问题,我查了资料(风险是在项目中发生的一系列事件或不利结果的可能性。软件开发是一项高风险的活动,在项目开发过程的任何一个阶段都可能存在风险。采取积极的风险管理方式,可以使项目进程更加平稳,可以获得很高的跟踪和控制项目的能力,可以规避、转移风险,或缓解风险带来的不利影响。所以要采取预防措施提供一个协作开发环境,让用户参与开发过程。如果条件不允许,至少应该在每次迭代的需求分析和系统测试阶段,让客户能够参与开发。在选择参与开发过程的用户时,一方面,要尽可能争取精通业务或计算机技术的用户参与。另一方面,如果开发的产品要在不同规模、不同类型的企业应用,应该选择具有代表性的用户参与。也可采取迭代开发。)根据我的实践,我得到这些经验(每次迭代,都要充分接收用户的评审意见,以便为自我纠正。渐近式的功能交付,有利于降低开发人员的压力,增加用户的满意度,有利于增强项目的可见性,是最好的进展。)但我还是不太懂(技术审评和持续集成及如何加入新技术)。

?如何综合使用WBS?

   我看了第八章需求分析第七小节分而治之有了这个问题,我查了资料(wbs是指工作分解结构,以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。创建WBS是指将复杂的项目分解为一系列明确定义的项目工作并作为随后计划活动的指导文档。WBS可以由树形的层次结构图或者行首缩进的表格表示。在实际应用中,表格形式的WBS应用比较普遍,特别是在项目管理软件中。当WBS与OBS综合使用时,要建立账目编码(Code ofAccount)。账目编码是用于惟一确定项目工作分解结构每一个单元的编码系统。成本和资源被分配到这一编码结构中。WBS中的支路没有必要全都分解到同一层次,即不必把结构强制做成对称的。在任意支路,当达到一个层次时,可以作出所要求准确性的估算,就可以停止了。)根据我的实践,我得到了这些经验(创建WBS时需要满足以下几点基本要求:a.某项任务应该在WBS中的一个地方且只应该在WBS中的一个地方出现。b.WBS中某项任务的内容是其下所有WBS项的总和。c.一个WBS项只能由一个人责任,即使许多人都可能在其上工作,也只能由一个人负责,其他人只能是参与者。)但我还是不太懂(当WBS与OBS综合使用时,如何建立账目编码)。


?当开发人员修复了一个缺陷并签入代码后,新的构建就会包含一个修复,测试人员验证修复会不会导致其他问题?

   我看了第十三章软件测试和第十四章质量保障有了这个问题,我查了资料(测试不是在所有的开发工作完成之后才进行,而是与开发几乎同步进行的。一个软件项目的各个功能都可以有自己的测试计划,它们可以在不同的阶段发挥作用。但是针对整个项目的总测试计划(又叫测试总纲)要在计划阶段大致定下来,并指导所有测试工作的进行。测试需要这些a. 用户类型不变。b. 屏幕分辨率降到两种,手机屏幕不要了,我们暂时不在手机上测试。c. 屏幕DPI不测试高级DPI(屏幕 | 属性 | 高级 | DPI 中可以设置DPI以提高显示效果。d. 操作系统只测试3种,二柱强烈支持Linux,同时考虑到一些高收入的网民可能会用Linux操作系统,保留Linuxe. 操作系统的语言只支持3种,这并不是网站内容的语言,而是操作系统的默认语言。f. 网络速度3种,无线网络的速度介于拨号与ADSL之间,可以忽略。g. 浏览器的版本,经过激烈的讨论,浏览器从5种变为3种。)根据我的实践,我得到了一些经验(各类人员都有文档要写,但是在敏捷模式中,我们要坚决避免为了写文档而写文档。要写真正有用的、重要的文档,如下所示:在计划阶段,我们就要制定测试计划,特别是测试总纲。然后还要写测试设计规格说明书(TDS)、测试用例、程序错误报告和测试报告)但我还是不太懂(我们的系统需要支持多少种操作系统、浏览器,以及其他影响功能的变量?)。

 

软件工程第一次作业补充