第一章 欢迎进入软件构建的世界
问题:什么是软建构件?为毛如此重要?
What Is Software Construction
软件项目的构建实际是由一些活动所构成,具体又是哪一些重要活动(activity)呢?下面的都算是吗?
- 定义问题 problem definition
- 需求分析 requirements development
- 规划构建 construction planning
- 软件架构 sofeware architecture
- 详细设计 detailed design
- 编码与调试 coding and debugging
- 单元测试 unit testing
- 集成测试 integration tesing
- 集成 integration
- 系统测试 system testing
- 保障维护 corrective maintenance
如果您是自学coding,你可能在开发过程中分辨出这么多活动。在你心里,这些活动很可能都被归纳为programming。实际你在做项目时,你考虑创建软件的问题时所想到的那些主要活动,就已经是“构建”活动中的一部分了。
构建活动主要是关于编码与调试,但也包含详细设计、单元测试、集成测试以及其他一些活动。构建有时也为称之为“编码(coding)或编程(programming)”,编码算不上贴切的词儿,因为太机械了,而真正的构建是需要可观的创造力和判断力。
说了那么多,那到底什么才是构建,细节又是什么?有没有一些具体任务(Task)
- 验证有关的基础工作已经完成,因为构建活动可以顺利的进行下去。
- 确定如何测试所写的代码?
- 设计并编写类(class)以及子程序(routine)。
- 创建并命名变量(variable)和具体常量(named constant)。
- 选择控制结构(control structure),组织语句块。
- 对你的代码进行单元测试和集成测试,并排除其中的错误。
- 评审开发团队其他成员的底层设计和代码,并让他们评审你的工作。
- 润湿代码,仔细进行代码的格式化和注释。
- 将单独开发的多个软件组件集成为一体。
- 调整代码(tuning code),让它更快,更省资源。
既然“构建”包含这么多的活动。有哪些活动不属于构建呢?比如需求分析、软件架构、用户界面设计、维护等。这些活动都像构建活动一样最终影响着项目的成败,这些也非常重要。
Why Is Software Construction Important
如果看客们还在继续遇阅读,你多半已经认同,提高软件的质量和开发者的生产率都是十分重要的。
- 构建活动是软件开发的主要组成部分,根据项目规模的不同,构建活动在整个软件开发活动总时间中所占的比列一般在30%~80%之间。可以这么说,直接会影响到项目的成败。
- 构建活动是软件开发中的核心活动。需求分析和软件架构都是在构建活动开始之前就完成的基础工作,它们可以让你更有效的进行构建;而系统测试则是构建活动的后续工作,用以验证构建的正确性。
- 把主要精力集中于构建活动,可以大大提高程序员的生产率,在构建期间,不同程序员的生产率的差异可达10~20倍(1968)。
- 构建的活动产物-源代码,往往是对软件的唯一精确描述。在很多项目中,程序员可以得到的唯一文档就是源代码本身。需求规格书和设计文档可能过时名单是源代码总是最新的。统一的运用各种技术来改进源代码的质量,将决定得到的结果是一个古怪的产品还是一个详细且信息丰富的程序。
- 构建活动是唯一一项确保会完成的工作。这一点不用太过说明,必须完成。现实中的软件项目,往往是跳过需求和设计的阶段直接跃入构建的环节。之后又由于有太多的错误需要修正而时间又不够,测试环节也被抛到一边了。所以。。。
原文著作:Steve McConnell 的 CODE COMPLETE