开发过程中的各种不同活动:
定义问题
需求分析
规划构建
软件架构(高层设计)
详细设计
编码与调试
单元测试
集成测试
集成
系统测试
保障维护
构建活动中的基本任务:
验证有关基础工作已经完成,因此构建活动可以顺利进行下去;
确定如何测试所写代码;
设计并编写类和子程序;
创建并命名变量和具名常量;
选择控制结构,组织语句块;
对代码进行单元测试和集成测试,并排除其中错误;
开发成员直接互相评审代码以及设计;
润饰代码,仔细进行代码的格式化和注释;
将单独开发的多个软件组件集成为一体;
调整代码让它更快更省资源;
非构建活动:
管理;
需求分析;
软件架构设计;
用户界面设计;
系统测试以及维护;
但是以上每个过程都像构建活动一样最终影响着项目的成败!
注意:
做大型软件项目的时候和建筑一样,超大型的结构一旦出问题,后果非常严重,因此应该对这样的结构进行超出常规的规划与建设,建筑人员需要非常小心的制定并核查设计规划,在建设时留有余地以保障安全,宁可多花10%成本买更坚固的材料,也比摩天大楼倒下来要划算很多。
技术不是规矩,它只是分析工具,好的工匠知道完成某项目需要哪样工具,也知道如何正确的使用,程序员也应该这样,编程方面的知识越多,你脑子中的工具箱中就会有更多的分析工具,也会知道该在何时用这些工具,以及怎样正确的使用这些工具。当你百分百依赖于某一个方法论之时,你就只会用一种方法去看世界了,某些情况下发,对于你面临的问题,往往还有其他更好的方法,你可能错失机会。
不要急于写代码实现,事先做好规划能避免很多压力,更何况软件开发不仅仅是写代码!
如果你想要的是一辆劳斯莱斯,那么就必须从头开始做计划,因为在现有之上改动,只能带给你最好的Aztek,绝不会变为劳斯莱斯!
俩大痛点:
需求分析
项目规划
Why Isn't Sam Coding ?
Why Isn't Mary Programming?
如果你准备好了,尝试问自己一句:
是否已经非常详细地研究了需求和设计,是否想不出的编码和调试期间还会遇到什么大问题了?