从需求分析走向概要设计
王青 2007-07-28
在软件过程中,需求分析和概要设计是两个极其重要的阶段。需求分析是概要设计的依据,而设计则
是需求自然的逻辑延续。从需求分析走向概要设计,就是我们从待解决问题的领域走向解决方案的领域,
也就是我们从客观的现实世界走向主观的计算机待建系统世界的过程。为了使得大家对这一过程的目的、
原则和具体工作有较为清楚的认识,特阐述以下内容与大家讨论。凡以下之内容,均系一家之言,不妥之
处,敬请指正。
软件工程的方法学
方法学是指导我们解决问题的原则,它是我们对于具体问题解决方案的哲学基础,是我们思考问题,
解决问题的方式方法。下面的一些方法学是软件工程的理论基础和逻辑起点,它们在软件工程的具体方法、
规则和关键活动域中都有体现。了解这些方法论,有助于我们加深对软件工程的理解;同时在我们优化软
件工程的活动中,对它们的了解和应用更会使我们的工作事半功倍。
分治法:将大的问题分解为小的问题,从而缩小问题的规模,降低问题的复杂度,减少风险。
逻辑完整性:所有的活动和所有的制品,都有其逻辑上的起点和支撑点;同时,也都有其逻辑上相应
的结果。
可管理:所有的活动和制品都应当能够被控制和调整。
文档化(documented):将不可见的活动和思维成果外化为具体的文档。
敏捷与 MDA:敏捷的原则在于够用就好;而 MDA 立足于用模型取代部分文档,增强设计的可追溯性
与可重构性。
软件工程的这些方法学于实践当中体现为软件过程,而软件过程的实施则依靠管理和组织的保障,在
此限于篇幅不再赘述。
需求分析的制品
需求分析的过程是对现实世界中的待解决问题的建模过程,同时也是深入剖析待建系统的过程。它的
成果通常包括:
一组 Use Case:通过对前置条件、后置条件和事件流的描述来清楚的界定系统使用者对于系统的
功能性需求。
Domain Model:明确待建系统中的业务实体以及它们之间的关系
SRS/ARS (Software/Application Requirements Specification):综述待建系统的目的、功能性需