面向对象管理信息系统_第1页
面向对象管理信息系统_第2页
面向对象管理信息系统_第3页
面向对象管理信息系统_第4页
面向对象管理信息系统_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、管理信息系统管理信息系统主讲:周宇葵第五章第五章 面向对象的开发方法面向对象的开发方法 第三节第三节 面向对象设计面向对象设计一、概述一、概述1 1、面向对象设计的任务、面向对象设计的任务 对分析阶段建立的分析模型进行调整与增补,得到软对分析阶段建立的分析模型进行调整与增补,得到软件设计模型。件设计模型。2 2、面向对象设计与结构化设计的比较、面向对象设计与结构化设计的比较 相同:都是基于抽象、信息隐藏、功能独立、模块化等相同:都是基于抽象、信息隐藏、功能独立、模块化等软件设计概念的基础上进行。软件设计概念的基础上进行。 区别:面向对象分析和面向对象设计之间的区别:面向对象分析和面向对象设计之

2、间的界限界限不明显,不明显,采用一致的表示法;面向对象的采用一致的表示法;面向对象的模块化模块化不再局限在过程处不再局限在过程处理部分,而是通过将数据和对数据的操作封装在一起,共理部分,而是通过将数据和对数据的操作封装在一起,共同完成信息和处理的双重模块化。同完成信息和处理的双重模块化。3 3、面向对象设计的步骤、面向对象设计的步骤 系统架构设计、系统元素设计。系统架构设计、系统元素设计。OOA与OOD的关系:v从从OOA到到OOD不是转换不是转换是调整和增补是调整和增补v将OOAOOA模型搬到OODOOD,进行必要的调整,作为OODOOD模型的问题域部分;v增补其它四个部分,成为完整的OOD

3、OOD模型。面向对象设计与结构化设计方法的不同之处二、系统架构设计v系统高层结构设计系统高层结构设计v确定设计元素确定设计元素v任务管理策略任务管理策略v分布式实现机制分布式实现机制v数据存储设计数据存储设计v人机交互设计人机交互设计1、系统高层结构设计/软件体系结构设计v软件体系结构:关于整个软件系软件体系结构:关于整个软件系统的全局性结构。决定软件系统统的全局性结构。决定软件系统全局性结构的关键因素是什么成全局性结构的关键因素是什么成分来构成系统,以及这些成分如分来构成系统,以及这些成分如何连接和相互作用。何连接和相互作用。v架构模式类型架构模式类型 v模型模型-视图视图-控制架构控制架构

4、 (Model-View-Control)v层次架构(层次架构(Layers)层层 次次功功 能能特殊特殊一般一般应用子系统层应用子系统层 组成所开发应用的独特应用子系统组成所开发应用的独特应用子系统业务专用层业务专用层该应用所属业务类型专用的一些可复用子系统该应用所属业务类型专用的一些可复用子系统中间件层中间件层提供实用程序的子系统,和为异构环境中分布式提供实用程序的子系统,和为异构环境中分布式对象计算提供独立于平台的服务等对象计算提供独立于平台的服务等系统软件层系统软件层构成实际基础设施的软件,如操作系统、特定硬构成实际基础设施的软件,如操作系统、特定硬件的接口、设备驱动程序等件的接口、设

5、备驱动程序等课程注册系统的架构层次结构图2、确定设计元素v映射分析类到设计元素映射分析类到设计元素 v一个分析类可以映射为一个一个分析类可以映射为一个设计类设计类或多个设计类的组或多个设计类的组合合,也可以将其映射为也可以将其映射为子系统接口子系统接口 v主动参与者对应的边界类、控制类,实体类主动参与者对应的边界类、控制类,实体类设计类设计类v被动参与者对应的边界类被动参与者对应的边界类子系统接口子系统接口v确定确定子系统子系统 v对于比较复杂的软件系统,需要划分子系统对于比较复杂的软件系统,需要划分子系统v子系统是一种特殊的包(元素容器子系统是一种特殊的包(元素容器+接口),将系统接口),将

6、系统分为若干个单元分为若干个单元v划分子系统的优点划分子系统的优点v独立开发(接口不变)、配置或交付独立开发(接口不变)、配置或交付v可以在一组分布式结点上独立部署可以在一组分布式结点上独立部署v在不破坏其他部分的情况下独立更改在不破坏其他部分的情况下独立更改v提供对关键资源的保护提供对关键资源的保护v确定子系统的指导性参考原则确定子系统的指导性参考原则v对象协作原则对象协作原则v用户界面原则用户界面原则v参与者原则参与者原则v耦合原则耦合原则v分布原则分布原则v软件层次原则软件层次原则v记录子系统记录子系统v必须为每个子系统提供一个名称和一段简短说明(用于记录必须为每个子系统提供一个名称和一

7、段简短说明(用于记录职责)。职责)。 v用构造型用构造型 subsystem 表示子系统,如果工具支持包但不表示子系统,如果工具支持包但不支持子系统,可以用包支持子系统,可以用包package来记录子系统。来记录子系统。 v定义子系统接口定义子系统接口v子系统实现一个或多个接口,代表对子系统所提供职子系统实现一个或多个接口,代表对子系统所提供职责的抽象声明(行为声明)责的抽象声明(行为声明)v子系统接口将子系统使用方法或行为声明与实现方式子系统接口将子系统使用方法或行为声明与实现方式(子系统中实现接口的特定类)彻底分开(子系统中实现接口的特定类)彻底分开v接口命名:在相应类的名称前加前缀接口命

8、名:在相应类的名称前加前缀“I-”或将类加上或将类加上“interface”标记标记3、任务管理策略/控制驱动部分的设计v概念:概念:v进程进程(process)/顺序进程:指顺序执行的程序单位。顺序进程:指顺序执行的程序单位。v线程线程(thread)/轻量进程轻量进程 :是:是进程进程中某个单一顺序的控中某个单一顺序的控制流。制流。v控制流:一个处理机上顺序执行的动作序列。是进程或控制流:一个处理机上顺序执行的动作序列。是进程或线程的别称,忽略了两者的差别。线程的别称,忽略了两者的差别。v任务:从用户需求的角度讨论系统并发性时使用。任务:从用户需求的角度讨论系统并发性时使用。v主动对象:指

9、具有主动行为的事物。主动对象:指具有主动行为的事物。v当一个主动对象被创建时,它的主动操作被创建为一个进程或线当一个主动对象被创建时,它的主动操作被创建为一个进程或线程,并开始作为一个处理机资源分配单位而开始活动。从它开始,程,并开始作为一个处理机资源分配单位而开始活动。从它开始,按照程序中描述的控制逻辑层调用其他对象的操作,形成一个控按照程序中描述的控制逻辑层调用其他对象的操作,形成一个控制流。制流。v顺序系统:只定义一个控制流的系统。顺序系统:只定义一个控制流的系统。v多任务系统多任务系统/并发系统:有多个控制流并发执行的系统并发系统:有多个控制流并发执行的系统线程与进程的区别:v进程既是

10、处理机分配单位,也是存储空间、设备等进程既是处理机分配单位,也是存储空间、设备等资源的分配单位;资源的分配单位;v线程只是处理机分配单位;线程只是处理机分配单位;v一个进程可以包含多个线程,也可以是单线程的。一个进程可以包含多个线程,也可以是单线程的。顺序系统与并发系统v并行需求产生的因素并行需求产生的因素v系统必须被分布的程度。系统行为必须虚拟分布在多系统必须被分布的程度。系统行为必须虚拟分布在多处理器或多个节点上的系统需要使用一个多进程架构。处理器或多个节点上的系统需要使用一个多进程架构。使用某种数据库管理系统或事务管理器的系统必须考使用某种数据库管理系统或事务管理器的系统必须考虑由其主要

11、的子系统引进的进程。虑由其主要的子系统引进的进程。 v核心算法的计算强度。为了使响应时间较短,有必要核心算法的计算强度。为了使响应时间较短,有必要在进程中或其本身的线程中进行高强度的计算活动。在进程中或其本身的线程中进行高强度的计算活动。v环境支持的并行执行程度。如果操作系统或环境不支环境支持的并行执行程度。如果操作系统或环境不支持线程(轻量级进程),则考虑它们对系统架构的影持线程(轻量级进程),则考虑它们对系统架构的影响就没有意义。响就没有意义。v系统容错能力的需要。备份处理器要求备份进程,并系统容错能力的需要。备份处理器要求备份进程,并且需要保持主进程和备份进程同步。且需要保持主进程和备份

12、进程同步。 v进程建模进程建模v进程用主动类来建模进程或线程,主动类能与进程用主动类来建模进程或线程,主动类能与其他主动类并行地执行。其他主动类并行地执行。v分别用分别用process、thread标识进程和标识进程和线程。线程。v进程建模可采用进程建模可采用类图类图或或构件图构件图。独立的进程间。独立的进程间用依赖关系联系,进程与线程间用组合关系联用依赖关系联系,进程与线程间用组合关系联系。构件图中无论是进程间关系还是进程与线系。构件图中无论是进程间关系还是进程与线程间关系均用依赖关系表示。程间关系均用依赖关系表示。“课程注册”的进程建模类图“课程注册”的进程建模构件图v将模型元素分布到进程

13、将模型元素分布到进程v确定在进程内应该执行的类和子系统。确定在进程内应该执行的类和子系统。v类或子系统实例有可能存在于多个不同的进程中。类或子系统实例有可能存在于多个不同的进程中。4、分布式实现机制v分布式应用:指应用程序的不同部件被安装在多个通过网分布式应用:指应用程序的不同部件被安装在多个通过网络连接的计算机上,系统运行时不同计算机上的应用部件络连接的计算机上,系统运行时不同计算机上的应用部件相互协作,提供应用服务。相互协作,提供应用服务。v分布式体系结构:二层分布式体系结构:二层/三层的三层的C/S结构、胖客户机结构等结构、胖客户机结构等v确定网络拓扑配置确定网络拓扑配置v将设计元素分配

14、到网络节点将设计元素分配到网络节点(但要求跨网络通信量最小化但要求跨网络通信量最小化)v节点容量(指内存量和处理能力)节点容量(指内存量和处理能力) v通信介质带宽(总线、通信介质带宽(总线、LAN、WAN) v硬件与通信链路的可用性硬件与通信链路的可用性 v对冗余与容错能力的要求对冗余与容错能力的要求v响应时间要求响应时间要求v吞吐量要求吞吐量要求 注册课程网络拓扑配置图v设计分布处理机制设计分布处理机制 v基于基于Java的分布处理采用远程方法调用的分布处理采用远程方法调用RMI(romote method invocation)实现分布处实现分布处理机制理机制v引入可直接利用的类库:引入

15、可直接利用的类库:java.io、java.rmi Naming:用于寻找分布在异地的对象。用于寻找分布在异地的对象。 Serializable:一个一个Java接口。异地之间作为参数传接口。异地之间作为参数传递的对象必须实现这个接口。递的对象必须实现这个接口。 Remote:一个一个Java接口。被分布到异地的对象的类接口。被分布到异地的对象的类必须实现这个接口。必须实现这个接口。 UnicastRemoteObject:支撑创建和导出被分布到异支撑创建和导出被分布到异地的对象。地的对象。v建立一些有建立一些有role标识的类,代表实际设计元素标识的类,代表实际设计元素 roleSample

16、DistributedClass:这个类代表需:这个类代表需要被远程访问的设计元素,即要被远程访问的设计元素,即分布类分布类。 roleSampleDistributedClassClient:这个类:这个类代表访问分布类的设计元素,即代表访问分布类的设计元素,即分布类的客户分布类的客户。 roleSamplePassedData:代表那些被:代表那些被作为参作为参数传递的对象数传递的对象所对应的设计元素。所对应的设计元素。 interfaceISampleDistributedClass:是一个:是一个Java接口,代表被分布到异地的接口,代表被分布到异地的分布类在本地的分布类在本地的“代言

17、人代言人”。v描述分布机制的静态结构描述分布机制的静态结构基于RMI的分布处理机制exportObject()5、数据存储设计、数据存储设计v基于基于JavaJava的的JDBC(Java Data Base Connectivity)JDBC(Java Data Base Connectivity)的数据的数据存储机制存储机制v引入引入JDBCJDBC相关类库(相关类库(java.sqljava.sql包中的类包中的类 )vDriverManagerDriverManager:用于建立数据库连接。:用于建立数据库连接。vConnectionConnection:用于保持与数据库的连接。:用于

18、保持与数据库的连接。vStatementStatement:用于直接和数据库进行交互。:用于直接和数据库进行交互。vResultSetResultSet:用于记录:用于记录SQLSQL查询返回的结果。查询返回的结果。v构造一些具有构造一些具有rolerole标识的类,代表实际设计元素标识的类,代表实际设计元素vrolerolePersistentClassPersistentClass:这个类代表需要持久保持的设计:这个类代表需要持久保持的设计元素。元素。vrolerolePersistentClientPersistentClient:代表在持久性相关协作中的交互:代表在持久性相关协作中的交

19、互者所对应的设计元素。者所对应的设计元素。vrolerolePersistentClassListPersistentClassList:用于返回一组作为数据库查:用于返回一组作为数据库查询结果的询结果的PersistentClassPersistentClass的对象。的对象。vroleroleDBClassDBClass:在:在JDBCJDBC中使用它来读写持久性数据,负责中使用它来读写持久性数据,负责访问数据库。访问数据库。v描述持久存储机制的静态结构描述持久存储机制的静态结构持久存储机制的静态结构v描述持久存储机制的典型应用场景描述持久存储机制的典型应用场景v典型的数据库操作是增、删、

20、查、改。典型的数据库操作是增、删、查、改。v初始化必须在访问任何持久类之前进行。初始化必须在访问任何持久类之前进行。创建PersistentClass实例对应的消息队列6、人机交互设计、人机交互设计v用户对人机界面的评价,在很大程度上是由人的主观因素用户对人机界面的评价,在很大程度上是由人的主观因素决定决定v设计策略设计策略v分类用户:分析用户特点(年龄、性别、受教育程度、分类用户:分析用户特点(年龄、性别、受教育程度、爱好、习惯等),设计不同界面爱好、习惯等),设计不同界面 v按技能水平分类(新手、初级、中级、高级)按技能水平分类(新手、初级、中级、高级)v按职务分类(总经理、经理、职员)按

21、职务分类(总经理、经理、职员)v按所属集团分类(职员、顾客)按所属集团分类(职员、顾客)v设计命令层次设计命令层次v研究现有的人机交互含义和准则研究现有的人机交互含义和准则v确定初始命令层次确定初始命令层次v精化命令层次:次序、整体精化命令层次:次序、整体-部分关系、宽度和深度、操作步骤部分关系、宽度和深度、操作步骤v增加用户界面专用的类与对象(人机交互类)增加用户界面专用的类与对象(人机交互类) v利用快速原型演示,改进界面设计利用快速原型演示,改进界面设计三、系统元素设计v子系统设计子系统设计v分包设计分包设计v类设计类设计1、子系统设计v将子系统行为分配给子系统元素将子系统行为分配给子系

22、统元素v子系统外部行为通过其接口定义。而接口中定义的每个子系统外部行为通过其接口定义。而接口中定义的每个操作,都会由子系统所包含的设计元素上的操作实现。操作,都会由子系统所包含的设计元素上的操作实现。v对子系统接口实现的每个操作,都可以画一个相应的子对子系统接口实现的每个操作,都可以画一个相应的子系统系统交互时序图交互时序图。 v描述子系统元素描述子系统元素v创建一个或多个创建一个或多个类图类图表示子系统包含的元素及它们之间表示子系统包含的元素及它们之间的关系。的关系。v用状态图表现子系统可能出现的状态及其变迁。用状态图表现子系统可能出现的状态及其变迁。v说明子系统的依赖关系说明子系统的依赖关

23、系v当一个子系统包含的某个元素使用了另一个子系统中的当一个子系统包含的某个元素使用了另一个子系统中的某个元素的行为时,这两个子系统之间即可创建依赖关某个元素的行为时,这两个子系统之间即可创建依赖关系。系。课程目录子系统时序图子系统代理子系统代理CourseCatalogSystem Client: CourseCatalogSystem: DBCourseOfferring: CourseOffering:CourseOfferingList : ResultSet: Course Catalog: Statement: Connection1. getCourseOfferings(Seme

24、ster)1.1. read(string)1.1.1. createStatement( )1.1.2. executeQuery(String)sql 语句指出寻找课程提供的标准1.1.4. new( )对从 executeQuery ()命令返回的每个数重复这些操作CourseOfferingList保存从数据库中检索到的数据对于每个返回的类的实例的每个属性都要调用getData 和setData操作3. setData( )创建一个列表保存所有已检索到的数据将检索到的信息添加进列表2. getString( )1.1.3. new( )4. add(CourseOffering)1.1

25、.2.1. / executeQuery( )找出本学期所提供的所有课程提供RDBMS读取读取课程目录子系统内部类图子系统代理子系统代理子系统接口子系统接口ICourseCatalogSystemgetCourseOfferings(forSemester : Semester) : CourseOfferingList(from External System Interfaces)11CourseOfferingListnew()add()(from University Artifacts)10.*CourseOfferingnew()setData()(from University

26、Artifacts)StatementexecuteQuery()executeUpdate()(from java.sql)ConnectioncreateStatement()(from java.sql)ResultSetgetString()(from java.sql)DBCourseOfferringcreate() : CourseOfferingread(searchCriteria : string) : CourseOfferingListCourseCatalogSystemgetCourseOfferings(forSemester : Semester) : Cour

27、seOfferingList子系统间依赖关系2、分包设计v在层次结构设计的基础上如何想使设计元素更有秩序,可在层次结构设计的基础上如何想使设计元素更有秩序,可以对设计元素分包以对设计元素分包v分包的原则分包的原则 v将边界类打包(由边界类与实体类间的独立性决定)将边界类打包(由边界类与实体类间的独立性决定)v将功能相关的类打包将功能相关的类打包v一个类的行为或结构的变化使得另一个类也必须相应的变化一个类的行为或结构的变化使得另一个类也必须相应的变化v一个类的存在与否影响到另一个类的存在一个类的存在与否影响到另一个类的存在v两个类之间存在大量的信息交互两个类之间存在大量的信息交互v边界类的功能是

28、显示一个特定的实体类边界类的功能是显示一个特定的实体类v两个类与同一参与者进行交互两个类与同一参与者进行交互v两个类之间存在聚集或关联关系两个类之间存在聚集或关联关系v描述包之间的依赖关系描述包之间的依赖关系包的依赖关系注意事项:注意事项:杜绝包之间的互相依赖;杜绝包之间的互相依赖;复用价值高的包不要依赖复用价值低的包;复用价值高的包不要依赖复用价值低的包;依赖关系尽量不要跨层;依赖关系尽量不要跨层;不要让包直接依赖包含实现子系统接口的系统元素的包。不要让包直接依赖包含实现子系统接口的系统元素的包。为“选课系统”进行分包设计从注册课程的角度在应用子系统层中建立在应用子系统层中建立Registr

29、ationRegistration包,将与选课相关的包,将与选课相关的类放在一起。类放在一起。RegisterForCoursesFormMainStudentFormRegistrationControllerCloseRegistrationFormCloseRegistrationControllerMainRegistrarForm10.110.11111在业务专用层中建立在业务专用层中建立University ArtifactsUniversity Artifacts包,将关系紧包,将关系紧密的实体类放在一起。密的实体类放在一起。FulltimeStudentParttimeStud

30、entPrimaryScheduleOfferingInfoScheduleOfferingInfoStudentStudentProfessorScheduleScheduleCourseOfferingCourseOfferingList1preRequisites0.*CourseCourse0.*1instructor0.10.*0.*0.*0.*0.4primaryCourses0.*0.2alternateCourses0.*13、类/对象设计v创建初始设计类创建初始设计类v设计边界类:设计边界类:GUI开发环境可自动创建开发环境可自动创建v设计实体类:出于性能的考虑可能需要重组设

31、计实体类:出于性能的考虑可能需要重组v设计控制类:根据控制的复杂性、事件流更改的可能性、设计控制类:根据控制的复杂性、事件流更改的可能性、应用程序在不同结点或处理器运行的需求,可选择是设应用程序在不同结点或处理器运行的需求,可选择是设立保留专门的控制类,还是将控制类的控制和协调行为立保留专门的控制类,还是将控制类的控制和协调行为分布到边界类或实体类完成分布到边界类或实体类完成v定义操作定义操作v根据用例研究每个类的职责,为职责确定操作。根据用例研究每个类的职责,为职责确定操作。v增加一些典型的操作:如初始化类的实例等。增加一些典型的操作:如初始化类的实例等。v操作的定义包含:操作名、返回类型、

32、参数、可见性、操作的定义包含:操作名、返回类型、参数、可见性、作用域(实例作用域、类作用域)作用域(实例作用域、类作用域)v定义方法定义方法v方法是对操作的实现。方法是对操作的实现。v定义属性:属性名、属性类型、属性默认值或初始值、可定义属性:属性名、属性类型、属性默认值或初始值、可见性。见性。v定义依赖关系:类间依赖关系体现为:方法中的参数、方定义依赖关系:类间依赖关系体现为:方法中的参数、方法的局部变量、方法内对静态方法的引用法的局部变量、方法内对静态方法的引用 v定义关联关系:关联一般的表现方法是对象的全局变量定义关联关系:关联一般的表现方法是对象的全局变量v定义泛化关系定义泛化关系类的重新设计分析分析FatClassLazyDataHelper- rarelyUsedAttr1- rarelyUsedAttr2设计设计FatClass- privateAttr+ getCommonlyUsedAttr1()+ getCommonlyUsed

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论