寒假阅读人月神话2

本文探讨了《人月神话》一书中关于软件工程的问题,包括如何在多人合作下保持软件设计的一致性,提出了软件开发的两阶段方法。文章还讨论了软件工程的核心问题及其解决方案,如需求精炼、快速原型、增量开发和卓越的设计人员,以及信息隐藏的重要性。

《人月神话》关注的主要问题是如何在需要多人设计的情况下,仍然保持软件的概念一致性。文中提出了一套可用于软件开发实践的方法。首先作者引用了Blaauw提出的创造性活动的三个独立阶段:体系结构,设计实现,物理实现。少数结构师进行设计,他们之间通过交流保持设计上的概念一致性。这三个步骤在很多方面都可以并行开始:在体系结构有了一个雏形型时,设计实现人员就可以设计比如:数据流,控制序列等。物理实现层面也可以开始对具体的技术进行研究,调试等工作。总的来说,这套方法重点在于:将软件开发过程划分为了两个阶段,概念实现阶段和物理实现阶段。在概念实现阶段需要由少量精英在充分沟通,对将要设计的的软件有统一的概念的基础上进行软件的设计。然后由物理实现人员进行并行的实现。作者在“为什么巴比伦塔会失败”中鼓励团队中的每个成员相互了解设计和代码。在20年后,作者得出了新的结论:信息隐藏是唯一提高软件设计水平的途径。我想这个改变很大程度上是来自于OOP设计思想和编程语言的流行。作为OOP的基本特点之一,信息隐藏已经已经是软件设计中一个基本的概念。

对于软件工程的根本问题,作者在原著和再版前言中反复讨论了它的解决之道。总结起来包括:需求精炼、快速原型、增量开发和卓越的设计人员。这些特点与目前流行的“敏捷开发”模式在很大程度上有共同点,同时作者在再版中还指出了自己的错误——瀑布模型,它假设系统是一次性构建完成的。而敏捷开发中的反复迭代过程,将系统的实现划分成多个阶段,每个阶段都会发布出一个可以运行的版本,并且对之前的方向有一个反馈。这里作者也提到了渐进精化的思想,和angile的理念也是非常吻合的。

转载于:https://www.cnblogs.com/youknownothing/p/8447201.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值