目录
1. 前期准备的重要性
在开始建造房屋之前,施工方要审查蓝图,核验所有的许可证是否已经备齐,并勘察地基。对于软件构建,就像建筑施工一样,工程的成败在开工之前就已经决定了。如果地基不牢或者规划不充分,那么在施工期间充其量只能勉强把损失降到最低。
在项目的开始、中间和结束时始终都应该强调质量:
1. 如果在项目的结束时强调质量,就说明强调的是系统测试。虽然系统测试是做软件质量保证的,但测试只是整个质量保证策略的一部分,并且还不是其中最有影响力的。测试不能发现诸如此类的缺陷:构建了错误的产品或者构建了正确的产品但是用的是错误的方法。
2. 如果在项目的过程中强调质量,就说明强调的是构建实践。
3. 如果在项目的开始时强调质量,就说明是在计划、要求并设计出高质量的产品。
2. 确定开发的软件类型
不同种类的软件项目在准备工作和构建时,各有侧重。每个项目都是独特的,但通常可以归为几种通用的开发风格,比如商业系统、任务攸关系统和嵌入式生命攸关系统。不同的系统有着不同的开发迭代方法。
3. 问题定义
问题定义只定义了问题是什么,并不涉及任何可能的解决方案。它是一个很简单的陈述,可能只有一两页的篇幅,并且听起来要像是问题。问题定义先于详细的需求工作,它是对问题更深入的研究。
问题定义要使用用户的语言,并且应该从用户的角度描述问题。
4. 明确的需求
需求活动也称为需求开发、需求分析、分析、需求定义、软件需求、规格书、功能规格书和规格。明确的需求有助于确保用户而不是程序员在驾驭系统的功能。明确的需求也有助于避免争论。重视需求有助于在进入开发阶段之后尽可能少去进行系统变更。
5. 软件架构
软件架构是软件设计的高层部分,是用于支撑更多细节的设计框架。架构也称作系统架构、高层设计或顶层设计。通常,有一份统一的文档描述架构,这份文档称为架构规格书或者顶层设计。
一个经过慎重考虑过的架构为从顶层到底层维护系统的架构完整性提供了必备的结构和体系,它为程序员提供了指引——其细节程度要与程序员的技能和手头的工作相匹配,它将工作分为几个部分,以便多个开发人员或多个开发团队能够独立工作。