7动态模型

  这部分的作用是描述系统如何响应各种事件。一般使用顺序图和状态图。

  确定不同的场景(Scenario)是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。

  7.1场景(Scenarios)

  对每个场景做一则条目,包括以下内容:

  场景名:给它一个可以望文生义的名字

  场景描述:简要叙述场景是干什么的以及发生的动作的顺序。

  顺序图:描述各种事件及事件发生的相对时间顺序。

  7.2状态图

  这部分的内容包括系统动态模型重要的部分的状态图。可能你想为每个对象画一个状态图,但事实上会导致太多不期望的细节信息,只需要确定系统中一些重要的对象并为之提供状态图即可。

  8非功能性需求

  五、概要设计怎么做

  结构化软件设计方法:

  详细阅读需求规格说明书,理解系统建设目标、业务现状、现有系统、客户需求的各功能说明;

  分析数据流图,弄清数据流加工的过程;

  根据数据流图决定数据处理问题的类型(变换型、事务型、其他型);

  通过以上分析,推导出系统的初始结构图;

  对初始结构图进行改进完善:所有的加工都要能对应到相应模块(模块的完整性在于他们完成了需求中的所有加工),消除完全相似或局部相似的重复功能(智者察同),理清模块间的层次、控制关系,减少高扇出结构,随着深度增大扇入,平衡模块大小。

  由对数据字典的修改补充完善,导出逻辑数据结构,导出每种数据结构上的操作,这些操作应当属于某个模块。

  确定系统包含哪些应用服务系统、客户端、数据库管理系统;

  确定每个模块放在哪个应用服务器或客户端的哪个目录、哪个文件(库),或是在数据库内部建立的对象。

  对每个筛选后的模块进行列表说明。

  对逻辑数据结构进行列表说明。

  根据结构化软件设计说明书结构对其他需要说明的问题进行补充说明,形成概要设计说明书。

  软件设计方法:

  在OOA基础上设计对象与类:在问题领域分析(业务建模和需求分析)之后,开始建立系统构架。

  第一步是抽取建立领域的概念模型,在UML中表现为建立对象类图、活动图和交互图。对象类是从对象中经过“察同”找出某组对象之间的共同特征而形成类:

  对象与类的属性:数据结构;

  对象与类的服务操作:操作的实现算法;

  对象与类的各外部联系的实现结构;

  设计策略:充分利用现有的类;

  方法:继承、复用、演化;

  活动图用于定义工作流,主要说明工作流的5W(DoWhat、WhoDo、WhenDo、WhereDo、WhyDo)等问题,交互图把人员和业务联系在一起是为了理解交互过程,发现业务工作流中相互交互的各种角色。

  第二步是构建完善系统结构:对系统进行分解,将大系统分解为若干子系统,子系统分解为若干软件组件,并说明子系统之间的静态和动态接口,每个子系统可以由用例模型、分析模型、设计模型、测试模型表示。软件系统结构的两种方式:层次、块状

  层次结构:系统、子系统、模块、组件(同一层之间具有独立性);

  块状结构:相互之间弱耦合

  系统的组成部分:

  问题论域:业务相关类和对象(OOA的重点);

  人机界面:窗口、菜单、按钮、命令等等;

  数据管理:数据管理方法、逻辑物理结构、操作对象类;

  任务管理:任务协调和管理进程;

  第三步是利用“4+1”视图描述系统架构:用例视图及剧本;说明体系结构的设计视图;以模块形式组成包和层包含概要实现模型的实现视图;说明进程与线程及其架构、分配和相互交互关系的过程视图;说明系统在操作平台上的物理节点和其上的任务分配的配置视图。在RUP中还有可选的数据视图。

  第四步是性能优化(速度、资源、内存)、模型清晰化、简单化(简单是享受)。