1、第7章 系统设计第第9 9章章 详细设计详细设计第7章 系统设计 概述概述 业务对象模型设计业务对象模型设计 功能逻辑设计功能逻辑设计 类的设计及优化类的设计及优化本章内容本章内容第7章 系统设计一一 概概 述述第7章 系统设计 1 1详细设计的任务详细设计的任务 详细设计是在体系结构设计的基础上详细设计是在体系结构设计的基础上,深入到深入到各子系统内部的细节设计工作。各子系统内部的细节设计工作。第7章 系统设计 2 2详细设计的工作详细设计的工作 业务对象模型设计业务对象模型设计 功能逻辑设计功能逻辑设计 类的设计类的设计,类关系的设计类关系的设计 类的优化类的优化第7章 系统设计二二 业务
2、对象模型设计业务对象模型设计第7章 系统设计 9.2.1 业务对象模型的概念业务对象模型的概念 业务对象业务对象是从业务领域中提取的业务实体,这些业是从业务领域中提取的业务实体,这些业务对象将作为信息系统中软件的基本构成元素,并作为务对象将作为信息系统中软件的基本构成元素,并作为信息系统中公用的实体类。作用信息系统中公用的实体类。作用:业务对象是功能逻辑设计的基础业务对象是功能逻辑设计的基础;业务对象是数据库设计的基础。业务对象是数据库设计的基础。第7章 系统设计9.2.2 业务对象模型设计的工作业务对象模型设计的工作 提取业务对象提取业务对象;对象属性设计对象属性设计;对象基本操作设计对象基
3、本操作设计;对象关系设计对象关系设计;建立业务对象模型。建立业务对象模型。第7章 系统设计 1 提取业务对象提取业务对象 业务对象来源于业务领域中的业务实体;业务对象来源于业务领域中的业务实体;用类的简化形式把提取的业务对象描述出来。用类的简化形式把提取的业务对象描述出来。书店业务中提取的部分业务对象书店业务中提取的部分业务对象9.2.3 业务对象模型设计过程业务对象模型设计过程第7章 系统设计 书店业务中提取的业务对象书店业务中提取的业务对象第7章 系统设计 书店业务中提取的部分业务对象书店业务中提取的部分业务对象第7章 系统设计 2 对象属性设计对象属性设计 属性用来表示对象的静态特性,对
4、提取的对象应该设属性用来表示对象的静态特性,对提取的对象应该设计其属性。计其属性。书店系统业务对象的属性书店系统业务对象的属性第7章 系统设计 3 对象操作设计对象操作设计 操作是业务对象的动态性质。操作是业务对象的动态性质。业务对象的完整操作需要在全面考虑了业务对象在业务对象的完整操作需要在全面考虑了业务对象在系统中完成的功能、对象之间的相互联系、系统的性能系统中完成的功能、对象之间的相互联系、系统的性能实现等多种设计因素之后,才能完全确定。实现等多种设计因素之后,才能完全确定。在此主要进行对象基本操作设计。在此主要进行对象基本操作设计。第7章 系统设计 书店系统业务对象的基本操作书店系统业
5、务对象的基本操作第7章 系统设计 4 对象关系设计对象关系设计 对象之间存在泛化、关联、组成、依赖等关系。对象之间存在泛化、关联、组成、依赖等关系。需要确定提取的各个业务对象之间的关系,为建立需要确定提取的各个业务对象之间的关系,为建立业务对象模型奠基基础。业务对象模型奠基基础。第7章 系统设计例如例如 第7章 系统设计 5 业务对象模型设计业务对象模型设计 业务对象模型业务对象模型用类图来描述提取出的业务对象之间用类图来描述提取出的业务对象之间的关系;的关系;业务对象模型是整个系统的静态基础;业务对象模型是整个系统的静态基础;功能逻辑设计中实现各用例功能中的实体类取之于功能逻辑设计中实现各用
6、例功能中的实体类取之于业务对象模型;业务对象模型;业务对象模型也是数据库设计的基础。业务对象模型也是数据库设计的基础。业务对象模型业务对象模型在整个系统设计中起着十分重要的作用。在整个系统设计中起着十分重要的作用。第7章 系统设计第7章 系统设计案例分析案例分析 书务系统业务对象模型设计书务系统业务对象模型设计第7章 系统设计案例分析案例分析 1 图书图书,图书类别图书类别,出版社出版社第7章 系统设计案例分析案例分析 2 图书图书第7章 系统设计案例分析案例分析 3 订购图书订购图书第7章 系统设计案例分析案例分析 4 图书入库图书入库第7章 系统设计案例分析案例分析 5 盘存和报损盘存和报
7、损第7章 系统设计案例分析案例分析 6 图书销售图书销售第7章 系统设计第7章 系统设计三三 功能逻辑设计功能逻辑设计第7章 系统设计 9.3.1 功能逻辑设计的含义功能逻辑设计的含义 功能逻辑设计功能逻辑设计是对在需求阶段确定的用用例描述的是对在需求阶段确定的用用例描述的系统功能,设计它的实现逻辑。系统功能,设计它的实现逻辑。第7章 系统设计 9.3.2 为什么要进行功能逻辑设计为什么要进行功能逻辑设计 一个子系统能够完成它所跟踪的用例的功能。一个子系统能够完成它所跟踪的用例的功能。完成用例功能,实现其操作,就是信息系统中完成用例功能,实现其操作,就是信息系统中若干个类中的对象,通过操作的执
8、行和相互之间消息若干个类中的对象,通过操作的执行和相互之间消息发送来实现用例的功能。发送来实现用例的功能。第7章 系统设计 功能逻辑设计的原理功能逻辑设计的原理第7章 系统设计 9.3.3 功能逻辑设计的工作功能逻辑设计的工作 第一,提取功能用例涉及的类第一,提取功能用例涉及的类 ;第二,绘制功能逻辑类图第二,绘制功能逻辑类图 ;第三,分析交互信息,得出功能逻辑交互图第三,分析交互信息,得出功能逻辑交互图 。第7章 系统设计 9.3.4 功能逻辑设计的过程功能逻辑设计的过程 -以编辑书目和图书销售为例以编辑书目和图书销售为例 编辑书目编辑书目,图书销售功能用例图图书销售功能用例图第7章 系统设
9、计案例分析案例分析 第7章 系统设计案例分析案例分析 *、功能用例、功能用例A A 书目书目编辑编辑第7章 系统设计案例分析案例分析 *书目编辑界面书目编辑界面A A 编辑编辑书目书目第7章 系统设计案例分析案例分析 1 1、提取功能用例涉及的类、提取功能用例涉及的类A A 编辑编辑书目书目第7章 系统设计案例分析案例分析 2 2 功能用例简略类图功能用例简略类图A A 编辑编辑书目书目第7章 系统设计案例分析案例分析 3 3 功能用例类图功能用例类图A A 编辑编辑书目书目第7章 系统设计4 4 功能逻辑用例顺序图功能逻辑用例顺序图第7章 系统设计案例分析案例分析 第7章 系统设计案例分析案
10、例分析 第7章 系统设计案例分析案例分析 第7章 系统设计案例分析案例分析 第7章 系统设计案例分析案例分析 第7章 系统设计 9.3.4 功能逻辑设计的过程功能逻辑设计的过程 -以图书销售为例讨论功能逻辑设计过程。以图书销售为例讨论功能逻辑设计过程。图书销售功能用例图图书销售功能用例图第7章 系统设计案例分析案例分析 第7章 系统设计案例分析案例分析 第7章 系统设计 边界类边界类:售书处理界面售书处理界面 实体类实体类:图书,架存图书,待售图书,售出图书图书,架存图书,待售图书,售出图书 图书类别图书类别,出版社出版社,售书单售书单,个人会员个人会员 控制类控制类:售书处理管理器售书处理管
11、理器 案例分析案例分析 1 1、提取业务对象、提取业务对象第7章 系统设计案例分析案例分析 第7章 系统设计案例分析案例分析 2 2 功能用例类图功能用例类图第7章 系统设计案例分析案例分析 第7章 系统设计案例分析案例分析 第7章 系统设计案例分析案例分析 第7章 系统设计四四 类的优化类的优化第7章 系统设计 9.4.1 类优化的原则类优化的原则 使类能够明确地表示事物实体,并具有相使类能够明确地表示事物实体,并具有相对独立性、一致性和适中的规模。对独立性、一致性和适中的规模。第7章 系统设计 9.4.2 类优化的方法类优化的方法 1、利用数据库范式理论对类进行优化利用数据库范式理论对类进
12、行优化 一级规范:一级规范:数据表数据表(类类)中不存在多值属性;中不存在多值属性;例如:例如:职工号职工号姓名姓名工资工资基本工资基本工资职务工资职务工资工龄工资工龄工资 职工号职工号姓名姓名基本工资基本工资职务工资职务工资工龄工资工龄工资 第7章 系统设计 二级规范:二级规范:满足一级规范,且数据表满足一级规范,且数据表(类类)中不存中不存在对主键属性部分依赖的属性,例如:在对主键属性部分依赖的属性,例如:学生成绩学生成绩(学生号学生号,姓名,班级,姓名,班级,课程号课程号,课程名,成绩,课程名,成绩)改为:改为:学生学生(学生号,姓名,班级学生号,姓名,班级)课程课程(课程号,课程号,课
13、程名课程名)成绩成绩(学生号,课程号,成绩学生号,课程号,成绩)第7章 系统设计 三级规范:三级规范:满足二级规范,且在数据表满足二级规范,且在数据表(类类)中不存中不存在传递依赖关系。例如:在传递依赖关系。例如:学生信息学生信息(学生号学生号,姓名,班级,系名,系办地址,姓名,班级,系名,系办地址)改为:改为:学生信息学生信息(学生号,姓名,班级,系名学生号,姓名,班级,系名)系系(系名,系办地址系名,系办地址)第7章 系统设计图7.39 书店信息系统的图书订单 图书订单订单号:100001填订日期:2002.4出版社名称:清华大学出版社联系人:赵正电话:010账号:计划单编号:200200
14、3地址:北京清华大学学研大厦邮政编码:100084计 划单序号书 号计划到货日期实际到货日期0019787302038061C 程序设计9787302046507信息组织Java2实用教程Jbuilder5实用教程信息经济学教程9787302034179IDEF建模分析和设计方法合计:35000元 运费:500元税费:218元管理费:200元其它费用:100元总计:36010元 采购员:李明到货地点:西安市北大街23号出版社编号:0100111002003004005006978730202801797873020472309797302052073书 名谭浩强马张华耿跃平张焱陈禹陈禹六作 者
15、1001030203010数量200206200205200210200211200210200210订价262829.8261728下面对由下面对由“图书订单图书订单”所产生的所产生的“图书订单图书订单”类进行优化:类进行优化:第7章 系统设计 1一级规范一级规范 把所有多值属性从类中抽取出来,构成一个新类。把所有多值属性从类中抽取出来,构成一个新类。“图书订单图书订单”类中,从类中,从“计划单序号计划单序号”到到“实际到货实际到货日期日期”8 8个属性都是多值的。个属性都是多值的。把这些属性从把这些属性从“图书订单图书订单”类中提取出来,形成新类中提取出来,形成新的的“订单图书订单图书”类
16、类(见图见图7.41)7.41)。订单图书是本订单所订购的图书,它是图书订单的订单图书是本订单所订购的图书,它是图书订单的有机构成部分,因此,有机构成部分,因此,“订单图书订单图书”类与类与“图书订单图书订单”类是组成关系。在一个订单中最多可以有类是组成关系。在一个订单中最多可以有2020种图书,多种图书,多重性标为重性标为1.201.20。第7章 系统设计图7.40 初步的“图书订单”类 图7.41 一级规范后的“图书订单”类第7章 系统设计 2二级规范二级规范 二级规范要求在类中不存在部分依赖关系的属性。二级规范要求在类中不存在部分依赖关系的属性。在图在图7.417.41中,中,“订单图书
17、订单图书”类的关键属性是类的关键属性是“订单订单号号”和和“书号书号”,但是,但是“书名书名”、“作者作者”、“单价单价”三个属性则仅依赖三个属性则仅依赖“书号书号”关键属性,存在部分依赖关关键属性,存在部分依赖关系,所以需要进行优化。二级规范后的系,所以需要进行优化。二级规范后的“图书订单图书订单”类类见图见图7.427.42。第7章 系统设计图7.42 二级规范后的“图书订单”类 第7章 系统设计 3三级规范三级规范 三级规范要求消除在类的属性中存在的传递依赖三级规范要求消除在类的属性中存在的传递依赖关系。关系。在在“图书订单图书订单”类中,类中,“出版社编号出版社编号”依赖依赖“订订单号
18、单号”,但是从,但是从“出版社名称出版社名称”到到“账号账号”6 6个属性仅个属性仅依赖依赖“出版社编号出版社编号”,并不直接依赖,并不直接依赖“订单号订单号”,这,这是典型的传递依赖关系,需要消除。三级规范之后的是典型的传递依赖关系,需要消除。三级规范之后的“图书订单图书订单”类见图类见图7.437.43。第7章 系统设计图7.43 三级规范后的“图书订单”类 第7章 系统设计 4进一步优化进一步优化 图图7.437.43中中“图书订单图书订单”的属性仍然偏多,并且的属性仍然偏多,并且“合计合计”和和“总计总计”两个属性属于派生属性,可以去两个属性属于派生属性,可以去掉。可以把几个费用属性独
19、立出来形成一个新的掉。可以把几个费用属性独立出来形成一个新的“订订单费用单费用”类,作为类,作为“图书订单图书订单”类的部分类。这样优类的部分类。这样优化之后的类图见图化之后的类图见图7.447.44。第7章 系统设计图7.44 “图书订单”优化类图 第7章 系统设计练习练习:优化优化”订购货品订购货品”订购货品订单编号货品编号货品名称货品规格订购数量单价到货日期供货商编号供货商名称地址联系电话采购员编号采购员姓名采购员电话第7章 系统设计四四 类的设计类的设计第7章 系统设计 1 1、这个阶段设计的类与业务对象的区别这个阶段设计的类与业务对象的区别 设计的类是业务对象的细化和分解。设计的类是
20、业务对象的细化和分解。设计的类需要反映系统的非功能性需求。设计的类需要反映系统的非功能性需求。设计的类着眼于实现,必须考虑所有实现细节设计的类着眼于实现,必须考虑所有实现细节 第7章 系统设计 2 2 类的设计类的设计 1)1)边界类的设计边界类的设计 边界类承担着信息的输入和输出以及信息的界面组边界类承担着信息的输入和输出以及信息的界面组织等任务。织等任务。边界类设计涉及到人机工程、审美和操作方便性等方边界类设计涉及到人机工程、审美和操作方便性等方面的知识和要求。面的知识和要求。边界类设计依赖于信息系统所采用的实现环境和设计边界类设计依赖于信息系统所采用的实现环境和设计语言。语言。边界类在可
21、视化的设计语言中一般表现为:边界类在可视化的设计语言中一般表现为:框架框架FormForm,窗口,窗口WindowsWindows,菜单,菜单menumenu,控件控件ControlsControls等形式。等形式。第7章 系统设计第7章 系统设计namespace 小型书务系统小型书务系统/Form1 的摘要说明。的摘要说明。public class Form1:System.Windows.Forms.Formprivate System.Windows.Forms.MainMenu mainMenu1;private System.Windows.Forms.MenuItem menuI
22、tem1;private System.Windows.Forms.MenuItem menuItem2;private System.Windows.Forms.MenuItem menuItem3;private System.Windows.Forms.MenuItem menuItem4;private System.Windows.Forms.MenuItem menuItem5;private System.Windows.Forms.MenuItem menuItem6;private System.Windows.Forms.MenuItem menuItem7;private
23、 System.Windows.Forms.MenuItem menuItem8;private System.Windows.Forms.MenuItem menuItem9;private System.Windows.Forms.MenuItem menuItem10;private System.Windows.Forms.MenuItem menuItem11;private System.Windows.Forms.MenuItem menuItem12;private System.Windows.Forms.MenuItem menuItem13;private System.
24、Windows.Forms.MenuItem menuItem14;private System.Windows.Forms.MenuItem menuItem15;private System.Windows.Forms.MenuItem menuItem16;private System.Windows.Forms.MenuItem menuItem17;private System.Windows.Forms.MenuItem menuItem18;第7章 系统设计private System.Windows.Forms.MenuItem menuItem28;private Syste
25、m.Windows.Forms.MenuItem menuItem29;private System.Windows.Forms.MenuItem menuItem30;private System.Windows.Forms.Label label1;private System.Windows.Forms.MenuItem menuItem19;private System.Windows.Forms.MenuItem menuItem20;private System.Windows.Forms.MenuItem menuItem21;private System.Windows.For
26、ms.MenuItem menuItem22;private System.Windows.Forms.MenuItem menuItem23;private System.Windows.Forms.MenuItem menuItem24;private System.ComponentModel.Container components=null;第7章 系统设计 2)2)实体类的设计实体类的设计 持久型实体类一般需要数据库技术实现。持久型实体类一般需要数据库技术实现。采用对象数据库最直接,关系数据库最成熟。采用对象数据库最直接,关系数据库最成熟。系统中的一个实体类,与数据库中的一个关系表
27、相系统中的一个实体类,与数据库中的一个关系表相对应。对应。第7章 系统设计第7章 系统设计 3)3)控制类的设计控制类的设计 根据以下需要来设置控制类:根据以下需要来设置控制类:事务处理事务处理 在事务处理的关键环节和交汇点上设置控在事务处理的关键环节和交汇点上设置控制类。如,制类。如,“售书处理售书处理”中,中,“售书处理管理器售书处理管理器”。性能实现性能实现 为了实现系统的效率、可靠性、安全性和为了实现系统的效率、可靠性、安全性和适应性的要求,需要设置控制类。例如,适应性的要求,需要设置控制类。例如,“一致性检一致性检查查”。分布处理分布处理 当处理被分布到不同的网络节点上时,在当处理被
28、分布到不同的网络节点上时,在各个节点上就需要设置单独的控制类来实施处理。各个节点上就需要设置单独的控制类来实施处理。第7章 系统设计第7章 系统设计第7章 系统设计 4属性设计属性设计 补充属性分析时没有考虑到的属性。属性分析主要补充属性分析时没有考虑到的属性。属性分析主要反映类的重要属性,不考虑细节属性,到属性设计时反映类的重要属性,不考虑细节属性,到属性设计时就要把这些属性补充全面。就要把这些属性补充全面。确定属性的全部内容,包括属性名、可视性、范确定属性的全部内容,包括属性名、可视性、范围、类型、初始值等。围、类型、初始值等。尽量采用信息系统所采用的程序设计语言的语法尽量采用信息系统所采
29、用的程序设计语言的语法规范来描述。规范来描述。第7章 系统设计第7章 系统设计 5操作设计操作设计 任务:任务:确定各个类应该提供的操作。确定各个类应该提供的操作。确定类操作的根据:确定类操作的根据:(1)(1)类的职责。类的职责。把职责分解到各个操作中。把职责分解到各个操作中。(2)(2)类的非功能性需求类的非功能性需求。效率、可靠性、安全性等非。效率、可靠性、安全性等非功能性需求,需要落实到类的一些操作上来,通过设置功能性需求,需要落实到类的一些操作上来,通过设置某些操作来实现这些需求。某些操作来实现这些需求。(3)(3)类的接口类的接口。设计类的接口是类对外提供的操作功。设计类的接口是类对外提供的操作功能,这些功能均需要通过类所提供的操作来实现。能,这些功能均需要通过类所提供的操作来实现。第7章 系统设计