系统设计
在系统分析阶段,我们已经搞清楚了软件“做什么” 的问题,并通过需求规格说明书描述了出来,这也是目标系统的逻辑模型。
进入设计阶段,要把软件做什么的逻辑模型转换成 “怎么做” 的物理模型。即着手实现软件系统的需求。
处理流程设计
处理流程其实就是业务流程,流程设计的任务是设计出系统所有模块和它们之间的相互关系,并具体设计出每个模块内部的功能和处理过程。
业务流程建模
标杆瞄准:以行业领先的标杆企业为目标,结合本企业情况分析建模。
IDEF(一系列建模、分析和仿真方法的统称)。
DEMO(组织动态本质建模法)
Petri网
业务流程建模语言:BPEL、BPML、BPMN、XPDL
基于服务的 BPM:基于Web 服务的思想对业务流程建模。
- IDFFO: 业务流程(功能)建模
- IDFF1X: 数据建模(如E-R模型)
- IDFF2: 仿真建模设计
- IDFF4: 面向对象设计
- IDFF8: 用户界面建模
- IDFF12: 组织结构建模
流程设计工具
程序流程图(Program Flow Diagram,RFD) 用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。任何复杂的程序流程图都应该由顺序、选择和循环结构组合或嵌套而成。
IPO 图 也是流程描述工具,用来描述构成软件系统的每个模块的输入、输出和数据加工 。数据流图也是一种 IPO 图。
N-S 图 容易表示嵌套和层次关系,并具有强烈的结构化特征 。但是当问题很复杂时,N-S 模型可能很大,因此不适合于复杂程序的设计。其实就是程序流程图的另一种表示方式。
问题分析图 (PAD)是一种支持结构化程序设计 的图形工具。PAD 具有清晰的逻辑结构、标准化的图形等优点,更重要的是,它引导设计人员使用结构化程序设计方法,从而提高程序的质量。
上面四个本质上都是差不多的,都是流程设计工具,只不过表示方式不同。
业务流程重组 BPR
BPR 是对企业的业务流程进行根本性的再思考和彻底性的再设计,从而获得可以用诸如成本、质量、服务和速度等方面的业绩来衡量显著性的成就,BPR 设计原则、系统规划和步骤如下图所示:
可以当成一个新的软件的设计,需要记忆原则。
业务流程管理 BPM
BPM 是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法。
BPM 与 BPR 管理思想最根本的不同就在于流程管理并不要求对所有的流程进行再造。构造卓越业务流程并不是流程再造,而是根据现有流程的具体情况,对流程进行规范化的设计。
流程管理包含三个层面:规范流程、优化流程和再造流程 。
系统设计
这里的系统设计是传统意义上的结构化设计(还有面向对象设计)。
系统设计的主要目的:为系统制定蓝图,在各种技术和实施方法中权衡利弊,精心设计,合理地利用各种资源,最终勾画出新系统的详细设计方法。
系统设计方法:结构化设计方法、面向对象设计方法。
系统设计主要任务:概要设计、详细设计
概要设计基本任务:又称为系统总体设计,是将系统的功能需求分配给每个软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。概要设计说明书。
详细设计基本任务:模块内详细算法设计、模块内数据结构、数据库的物理设计、其它设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。
系统设计基本原理
- 抽象化
- 自顶向下,逐步求精(先概要设计、再详细设计)
- 信息隐蔽,强调封装
- 模块独立(高内聚、低耦合)
实现的时候是自底向上的实现。
系统设计原则
- 保持模块的大小适中
- 尽可能减少调用的深度(有的时候为了模块化,不能跨层调用,也只能一层一层往下调用。)
- 多扇入、少扇出(扇入就是被调用、扇出调用其它模块),扇入证明有价值,复用程度很高;少扇出证明低耦合。
- 单入口、单出口 ; 这里是指功能模块的输入输出
- 模块的作用域应该在模块之内
- 功能应该是可预测的
人机界面设计
人机界面设计三大黄金原则:
