西安交通大学现代远程教育课程 软件工程概论 问题域部分的对象通过请求数据接口部分提供的服务 实现对象的存取,这些永久性对象需要增加一些属性(如 类名、关键字)和请求保存与恢复的操作,往往需定义 个在较高层次上的作为存储协议的抽象类。因此对原有的 对象模型要作一些修改与调整。 (2)关系数据库 提供了对数据存取、数据共享、数据完整性维护、故 障恢复、事务处理等功能实现的数据操纵语言。数据以表 的形式存储,表的每一列标识一个属性,每行把一个数据 项标识成一个属性值的元组。不同表中的多个元组用来表 示单个对象的属性。关系型数据库技术成熟,适合于大的 数据集以及对属性数据的复杂查询。但关系数据库不适 合储存多媒体数据和经过压缩处理过的数据(因为要求至 少满足第一范式一每个属性必须是原子的,不再含有内部 结构) 主讲教师:刘海岩副教授
26 问题域部分的对象通过请求数据接口部分提供的服务 实现对象的存取,这些永久性对象需要增加一些属性(如 类名、关键字)和请求保存与恢复的操作,往往需定义一 个在较高层次上的作为存储协议的抽象类。因此对原有的 对象模型要作一些修改与调整。 (2)关系数据库 提供了对数据存取、数据共享、数据完整性维护、故 障恢复、事务处理等功能实现的数据操纵语言。数据以表 的形式存储,表的每一列标识一个属性,每行把一个数据 项标识成一个属性值的元组。不同表中的多个元组用来表 示单个对象的属性。关系型数据库技术成熟,适合于大的 数据集以及对属性数据的复杂查询。但关系数据库不适 合储存多媒体数据和经过压缩处理过的数据(因为要求至 少满足第一范式—每个属性必须是原子的,不再含有内部 结构)
西安交通大学现代远程教育课程 软件工程概论 应用系统 由于关系数据库要求存 对对 对 入其中的数据符合一定的规 象象…象 范,因此需要对永久类的数 据进行规范化(要花费代 数据接口 价),以消除关系中的函数 依赖所带来的数据更新异常 并减少数据冗余 RDBMS 为了给数据查询、更新 等操作带来方便,需要对永 关系数据库 久类确定关键字,使能够唯 的确定该类的每个对象实 表1表2 表叫 例(该表的每个元组)的属 性 用关系数据库存储对象 主讲教师:刘海岩副教授
27 对 象 对 象 … 对 象 应用系统 数据接口 RDBMS 表1 表2 … 表n 关系数据库 用关系数据库存储对象 由于关系数据库要求存 入其中的数据符合一定的规 范,因此需要对永久类的数 据进行规范化(要花费代 价),以消除关系中的函数 依赖所带来的数据更新异常 并减少数据冗余。 为了给数据查询、更新 等操作带来方便,需要对永 久类确定关键字,使能够唯 一的确定该类的每个对象实 例(该表的每个元组)的属 性
西安交通大学现代远程教育课程 软件工程概论 数据接口的实现类似文件系统,也需要提供“对象保 存”和“对象恢复”的服务。执行这些服务需要知道被保 存或恢复的对象的下述信息: 它在内存中是哪个对象(以便知道从何处取得被保存 的对象,或者把数据恢复到何处); 它属于哪个类(以便知道该对象应保存在哪个数据库 表中); 它的关键字(以便知道该对象对应数据库表的哪个元 组) (3)Oo数据库 将对象和关系作为数据储存。提供了继承和抽象数据 类型,不需要对象和存储实体之间的格式转换,不需要另 外设计数据接口。需熟悉 OODBMS提供的ODL、DML 实现对类和对象的定义以及对数据库的访问。 下图显示了使用关系数据库对类的实例的存储。 主讲教师:刘海岩副教授
28 数据接口的实现类似文件系统,也需要提供“对象保 存”和“对象恢复”的服务。执行这些服务需要知道被保 存或恢复的对象的下述信息: • 它在内存中是哪个对象(以便知道从何处取得被保存 的对象,或者把数据恢复到何处); • 它属于哪个类(以便知道该对象应保存在哪个数据库 表中); • 它的关键字(以便知道该对象对应数据库表的哪个元 组)。 (3)OO数据库 将对象和关系作为数据储存。提供了继承和抽象数据 类型,不需要对象和存储实体之间的格式转换,不需要另 外设计数据接口。需熟悉OODBMS提供的ODL、DML, 实现对类和对象的定义以及对数据库的访问。 下图显示了使用关系数据库对类的实例的存储
西安交通大学现代远程教育课程 软件工程概论 服务机构 vehicle discount rate: float =0.0 maintenance Id discount_rate price price( 20 123 10 10 交通工具维护 15 price price() part X vehicle ID part_number 0 0 零件 12 part number discount rate part mIn current number quantityquantity price discount 产品 20 134.00 min quantity float 10 6.50 0.0 current quantity float 15 25 21.75 5.0 price: float 用关系数据库实现类 两个多对多关系的类映射为3个表(维护表、车辆零件表、零件表) 主讲教师:刘海岩副教授
29 服务机构 discount_rate : float = 0.0 price( ) price( ) price 交通工具维护 part_number discount_rate 零件 min_quantity : float current_quantity : float price : float 产品 vehicle maintenance ID discount_rate price 1 10 20 2 10 35 3 15 5 part X vehicle ID part_number 1 1 2 12 3 6 part part_ number min_ quantity current_ quantity price discount 1 10 20 134.00 0.0 2 10 14 6.50 0.0 3 15 25 21.75 5.0 0 .. * 0 .. * 用关系数据库实现类 两个多对多关系的类映射为3个表(维护表、车辆零件表、零件表)
西安交通大学现代远程教育课程 软件工程概论 7、确定边界条件 设计中的大部分工作都与系统稳定的状态行为有关。 但必须考虑边界条件:系统如何启动、初始化、关闭以及 故障处理 初始化包括:常量、参数、全局变量、任务及保护独 享的处置设置。系统关闭时,应该释放所拥有的全部资源 并发系统中必须通知其他任务,系统要关闭。 运行中出现故障的原因可能是 用户错误,系统应帮助用户纠正错误。 硬件错误,网络连接故障等情况需要保存临时状态。 软件故障,在程序中多设计出现故障后的出口。 系统设计是不断迭代和演化的过程,要保证设计模型 是正确的、完整的、一致的、现实的、易读的 30 主讲教师:刘海岩副教授
30 7、确定边界条件 设计中的大部分工作都与系统稳定的状态行为有关。 但必须考虑边界条件:系统如何启动、初始化、关闭以及 故障处理。 初始化包括:常量、参数、全局变量、任务及保护独 享的处置设置。系统关闭时,应该释放所拥有的全部资源。 并发系统中必须通知其他任务,系统要关闭。 运行中出现故障的原因可能是: • 用户错误,系统应帮助用户纠正错误。 • 硬件错误,网络连接故障等情况需要保存临时状态。 • 软件故障,在程序中多设计出现故障后的出口。 系统设计是不断迭代和演化的过程,要保证设计模型 是正确的、完整的、一致的、现实的、易读的