第9章详细设计 本章导读 信息系统体系结构设计之后,需要着手详细设计。详细设计包括业务对象模型设计、 功能逻辑设计、数据库设计和界面设计等工作。详细设计是系统实现的依据,需要考虑所 有的设计细节,必须仔细认真。 主要知识点 ■业务对象模型设计 ■功能逻辑设计 ■数据库设计 ■界面设计
9.1业务对象模型设计 业务对象是从业务领域中提取的业务实体,这些业务对象将作为信息系统中的基本构 成元素,并作为信息系统中公用的实体类。业务对象模型设计是从整个信息系统考虑,不 局限于某一个或某几个子系统,业务对象将作为各子系统中功能逻辑设计和数据库设计的 基础。业务对象模型设计包括提取业务对象、对象属性设计、对象基本操作设计、关系设 计、优化类和建立业务对象模型等工作。 911提取业务对象 业务对象来源于业务领域中的业务实体。业务实体是组织中存在的各种事物,是组织 的基本资源。业务对象是信息系统的基本构成元素。业务对象虽然来源于业务领域中的业 务实体,但并不是所有的业务实体都会成为业务对象,从业务领域中提取那些在信息系统 范围内的业务实体作为业务对象。例如,图书、职工、会员、工资、奖金、架存图书、售 书单等是书店中的业务实体,如果要开发书店书务管理系统,只需要把图书、职工、会员、 架存图书、售书单定业务实体提取作为业务对象,而工资和奖金两个业务实体就不需要提 取为业务对象,因为书务系统不管理书店职工的工资和奖金。 用类的简化形式把提取的业务对象描述出来。图9.1是为开发书店书务系统,从书店 业务中提取的部分业务对象。 图91书店业务中提取的部分业务对象 912对象的属性设计 在面向对象方法中,属性用来表示对象的静态特性。构成对象静态特性的项目称为属 性项。每一个属性项中的具体值称为属性值。对“人”这个对象来说,姓名、性别、出
生年月、家庭住址、电话、体重、身高、血型、性格、爱好、职业、毕业院校、所学专业 都是该对象的属性。姓名,性别等项目称为对象“人”的属性项。赵晓,男,196610.12, 西安宇航电子公司11楼103号,8216381,63公斤等则是属性值 在平常应用中,并不明确区分属性和属性项两个概念。可以把一个对象所有静态特性 称之为对象的属性,也可能把对象的某一个属性项称为对象的属性。例如,我们说对象“人” 的“姓名”属性,而不说成对象“人”的“姓名”属性项。但严格讲,“姓名”是对象“人” 的属性项。 1.属性命名 给属性命名时,一般使用名词或带定语的名词。像“姓名”,“学生姓名”,“型号”,“产 品型号”,“商品条形码”等。尽量使用业务领域中规范、通用的词语,避免使用没有明确 含义或自定义的词语 2.属性分析 需要认真分析业务领域中的业务对象的性质,确定出合适的业务对象的属性。属性分 析的一般方法有: 从常理上看,业务对象所表示的事物有哪些静态特性 绝大部分业务对象,尤其是实体型业务对象是用来直接反映业务领域中具体事物的, 分析人员首先可以从常理上理解该业务对象所反映的事物应该有哪些静态特征,以便确定 业务对象的属性。例如,学生的静态特性有学生的身份证号、姓名、性别、住址、邮政编 码、电话、所学课程平均成绩、爱好、体重、身高、健康状况等。事物的静态特性可以作 为业务对象的侯选属性,但不能不加分析就直接作为对象的属性,因为信息系统也许并不 需要某些特性。 (2)在具体领域中业务对象所具有的属性 同一事物在不同的业务领域中,要求和突出事物的静态特性是不同的。例如,同一个 人,在学校中作为学生时考虑其静态特征时,除了姓名、性别、出生年月、住址、电话等 般特性之外,还要考虑与学习有关的特性,如所修课程、各科成绩等。但在医院中作为 病人时,其特性除一般特性之外,还要反映病人的身体状况和病情状况,例如,血压、脉 搏、体温、体重等。 (3)信息系统要求业务对象应具有的属性 业务对象的属性只有通过系统需求才能确定是否真正需要。从常理上所提出的属性和 业务领域的属性只能作为确定业务对象属性的参考,只有通过需求分析,才能确定业务对 象所需要的属性。 (4)业务对象需要记录和保存的信息 业务对象需要记录和保存的信息应该作为业务对象的属性。例如,产品的生产量是需要 记录和保存的产品信息,就可以把产品生产量作为产品对象的一个属性。学生所修课程的 成绩是需要保存的信息,学生所修课程成绩航可以作为学生对象的属性 图91中的几个业务对象确定的属性见图92
图92书务系统部分业务对象的属性 3.属性设计 属性设计是对属性分析的深入和细化,与属性分析相比较,属性设计应该着重强调下 面几个方面:第一,补充属性分析时没有考虑到的属性。属性分析主要反映类的重要属性 般不考虑涉及实现细节的有关属性,到属性设计时把这些属性补充全面。第二,确定属 性的全部内容。包括属性名、可视性、范围、类型、初始值等。第三,尽量用软件开发所 釆用程序设计语言的语法规范来描述属性。 图93是对图92中“图书”、“图书类别”和“出版社”三个业务对象的属性设计 图93书务系统部分业务对象的属性设计
91.3基本操作设计 属性是业务对象的静态性质,操作则是业务对象的动态性质。业务对象的完整操作需 要在全面考虑了业务对象在信息系统中完成的功能、对象之间的相互联系、系统的性能实 现等多种设计因素之后,才能完全确定。也就是说,业务对象的有些操作需要到功能逻辑 设计中才能够确定,在此只能确定业务对象的一些基本操作 此时确定的业务对象的操作主要从业务对象本身考虑,应该具有哪些基本操作,能够 保证这个业务对象的基本需要。图94是为书务系统的部分业务对象确定的操作。业务对 象的操作也需要进行设计,其设计工作是在分析的基础上,对每一个操作的算法、流程和 处理的数据进行设计。 图94书务系统部分业务对象的操作 914关系设计 不同的面向对象程序设计语言对关系的支持程度是不一样的,比如,C++支持多重继 承,而Java航不支持多重继承。本节主要讨论在不过多地考虑程序设计语言的情况下实现 对象关系的一般方法 1.关联关系