Homework to Blog 3

1.为什么软件开发周期总是预估的2~3倍?

资料:软件开发周期 —— 现实版 VS 书本版 | 菜鸟教程 (runoob.com)

现实版:

1.开发人员开发出程序,深信里面没有缺陷。

2.产品测试。发现了20个缺陷。

3.开发人员修改了其中的10个,并向测试部门解释另外10个不是真正的缺陷。

4.测试人员发现修改后的缺陷中有5个仍然有问题,并且又发现了15个新缺陷。

5.第3步和第4步重复了3遍。

6.由于市场的压力和由过度乐观的开发计划产生的仓促的产品声明,产品正式发布了。

7.用户发现了137个新缺陷。

8.最初的开发人员,兑换了他们的忠诚支票,走的无影无踪了。

9.新召集的开发团队修改了137个缺陷中的大部分,但又导致了456个新缺陷。

10.最初的开发人员从斐济群岛给欠薪的测试部门送来了一张明信片。测试部门全体辞职。

11.公司用最近发布的带有783个缺陷的产品的利润买进股票抵制了竞争对手的恶意收购。

12.董事会带来了一位新CEO。他招聘了新的开发人员重做这个产品。

13.开发人员开发出程序,深信里面没有缺陷 …

书本版:

软件生命周期的六个阶段

1、问题的定义及规划
  此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

2、需求分析
  在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。

3、软件设计
  此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。

4、软件实现(程序编码)
  此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

5、软件测试
  在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。

6、运行维护
  软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。

        我的总结:按照软件生命周期完美走完的计划听起来规划得很美好、很理想,但是现实操作中会有很多不可抗力因素,会影响到原本的计划,比如:需求的理解不一致,项目经理分配的时间不合理,开发人员低估开发某个模块的难度等。

2.什么是分而治之?

资料:Divide and Conquer Algorithm (programiz.com)

分而治之算法是一种解决大问题的策略

  1. 将问题分解为更小的子问题
  2. 解决子问题,以及
  3. 将它们组合在一起以获得所需的输出

        如合并排序就使用了分而治之的思想

3.了解WBS

资料1 工作分解结构概述 |微软学习 (microsoft.com)

A work breakdown structure (WBS) is a description of the work that will be done for a project. It’s a hierarchy of tasks that represents the project team’s understanding of the composition of work, and of the size, cost, and duration of each component or task. A WBS has three major purposes:

  • Describe the breakdown or composition of work in tasks.
  • Schedule the project work.
  • Estimate the cost of each task.

工作分解结构 (WBS) 是对将为项目完成的工作的描述。它是一个任务层次结构,表示项目团队对工作构成以及每个组件或任务的大小、成本和持续时间的理解。WBS 有三个主要用途:

  • 描述任务中工作的细分或组合。
  • 安排项目工作。
  • 估算每个任务的成本。

资料2 什么是WBS? - 知乎 (zhihu.com)

WBS ( Work Breakdown Structure ) ,即工作分解结构

WBS应遵守的原则:

一、100% 原则

 拆分的任务要 100% 的包含所有交付物。例如开发项目,在任务拆解时必须覆盖需求评估、设计、开发、测试和交付五个完整的模块,然后针对不同模块做进一步任务拆解。

二、拆分任务时要相互独立且完全穷尽

「相互独立」意味着不重复造轮子。「完全穷尽」才能不误事。例如采购盘子和采购餐具并存,就是不合理的拆分。

三、要有合理的工作包大小

项目拆解出来的工作包并非越细越好。每个工作包拆解到一个人可以独立负责,不超过1天的工作量为最佳。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值