浅谈
最近正在做web chart的系统分析设计。自己一边做,付总一边指导,颇有所获,记之。
我估计,所有的系统分析设计(包括建筑业等)可能都是如此流程:从抽象到具体,从全局到细节,从用户视角到专业视角的自顶而下的过程。
系统分析一般包括引言部分、产品定义部分、需求部分、概要设计、详细设计部分
引言、产品定义部分都是站在用户角度,要以非专业性言语描述现在遇到的问题(背景)、希望达到的效果(愿景)、到底我要设计什么产品/系统(产品定义)
需求部分就是半用户半专业性质言语,主要工作是将产品定义分解成一系列关键的、具体的、可测量的指标。它是后面概要设计和详细设计围绕的中心
上面的过程基本是把抽象问题具体化
概要设计主要工作就是根据需求(中心),明确系统的功能边界(究竟干哪些事)、纵向分为哪些层、横向分为哪些模块。
明确系统边界可以用到用例图,注意用例图:1、一定要从参与者的角度出发,它能看到系统提供怎样的功能 2、检查有没有功能不是本系统提供 3、用例应当是动宾结构
分模块可以用到类图: 1、画类图要从对外暴露的类出发,思考它提供怎样的功能、拥有什么样的属性、会与其他类/模块怎样交互,然后逐步延伸
这部分过程符合软件学的管理复杂度的思想,即把大问题逐步分解为小问题而个个击破