Web应用程序开发的面向对象设计

上传人:lizhe****0001 文档编号:54439462 上传时间:2018-09-13 格式:PPT 页数:92 大小:813KB
返回 下载 相关 举报
Web应用程序开发的面向对象设计_第1页
第1页 / 共92页
Web应用程序开发的面向对象设计_第2页
第2页 / 共92页
Web应用程序开发的面向对象设计_第3页
第3页 / 共92页
Web应用程序开发的面向对象设计_第4页
第4页 / 共92页
Web应用程序开发的面向对象设计_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《Web应用程序开发的面向对象设计》由会员分享,可在线阅读,更多相关《Web应用程序开发的面向对象设计(92页珍藏版)》请在金锄头文库上搜索。

1、1,面向对象的系统开发:开发过程,2,面向对象的系统开发过程:系统分析,系统分析包括需求分析和结构分析,用户需求描述经过需求分析产生需求模型,需求模型经过结构分析产生分析模型,分析模型和需求模型是系统分析的结果,也是系统构造的输入。,3,面向对象的系统开发过程:系统分析,4,面向对象的系统开发过程:系统分析,(1)用户需求描述:通常是以文本的形式,甚至是口头讨论的形式表达的用户需求,说明系统的真正需求是什么,但通常是不完整、不连贯、不清晰的; (2)需求分析:基于需求描述,建立系统需求模型 (3)需求模型:从用户的观点出发,全面、准确地描述系统的功能以及用户使用系统的方式与方法;,5,面向对象

2、的系统开发过程:系统分析,(4)结构分析:在需求模型的基础上,抽取其中的类(对象)及其相互关系,构造系统的逻辑结构(静态模型及动态模型),形成系统的分析模型; (5)分析模型:利用对象及其相互关系,描述系统的逻辑结构,该结构独立于具体的实现环境;,6,面向对象的系统开发过程:系统构造,系统构造过程用于设计与实现系统。在系统设计过程中,将需求模型和分析模型作为输入,考虑具体的实现环境,设计分析模型中的每一个类及类之间的相互关系,形成设计模型。最后用某种具体的编程语言描述设计模型,形成以源代码为主要内容的实现模型;,7,面向对象的系统开发过程:系统构造,8,面向对象的系统开发过程:系统构造,(1)

3、设计模型:在分析模型的基础上,考虑具体的实现环境,采用面向对象的概念与方法,将具体的实现环境进行封装并局部化,以变动尽可能少为原则调整分析模型,形成设计模型; (2)实现模型:在设计模型的基础上,将其中的对象及其相互关系采用某种编程语言或开发环境描述出来,就可以得到以源代码为主要内容的实现模型;,9,面向对象的系统开发过程:系统测试,测试过程根据需求与设计模型验证实现模型的正确性,形成系统测试模型。测试模型描述系统的单元测试、集成测试、系统测试过程及其测试结果。,10,面向对象的系统开发过程:系统测试,11,面向对象的系统开发过程:系统测试,测试模型:系统的单元测试、集成测试、系统测试过程及测

4、试结构的描述。,13,面向对象的系统分析与设计:系统分析,系统分析的主要内容 建立系统的需求模型 建立系统的分析模型,14,面向对象的系统分析:主要内容,15,面向对象的系统分析:建立需求模型的过程,16,建立分析模型的过程,17,面向对象的系统分析与设计:系统构造,建立系统的设计模型 建立系统的实现模型,18,面向对象的系统构造:建立系统设计模型,设计模型及设计类的概念 精化分析关系 系统体系结构设计 子系统设计 接口设计 类设计,19,建立系统设计模型:设计模型概念,设计模型是添加了特定技术的解决方案及相关技术详细信息的分析模型的细化 设计模型由设计类及相互关系表述,20,建立系统设计模型

5、:设计模型概念,21,建立系统设计模型:设计类概念,设计类是已经完成了规格说明并且达到能够被实现程度的类 设计类来源于问题域和解域,22,建立系统设计模型:问题域设计类,来源于问题域的设计类是分析类的细化 一个分析类可以细化为零个、一个或多个设计类,23,建立系统设计模型:解域设计类,实用类库 中间件 GUI库 可重用组件 特定实现的细节,24,建立系统设计模型:设计类规格说明,(1)完整的属性集合,包括:,属性名称 属性类型 适当的默认值 可视性,25,建立系统设计模型:设计类规格说明,(2)完整的方法集合,包括:,方法名称 方法中所有参数名称及类型 适当的可选参数值 返回类型 可视性,26

6、,建立系统设计模型:良好的设计类,原子性 完整性 充分性 高内聚 低藕合 良好的公共方法接口,27,良好的设计类:原子性,设计类的方法应尽量设计成提供单一的原子服务 设计类不应提供用多种方法完成一件复杂的事情,28,良好的设计类:完整性,客户可以从类的名称中判定该类应该能够提供的方法的集合 设计类应提供给客户可能预期的所有功能,29,良好的设计类:充分性,设计类应当恰好包含所需要的方法集合并且没有多余的方法 充分性就是要保持设计类尽可能的简单和专注,30,良好的设计类:高内聚,设计类应该使用最小特征集合捕获唯一的、良好定义的抽象(职责单一) 内聚性是类最理想的特征之一,内聚的类通常容易理解、复

7、用和维护,31,良好的设计类:低藕合,设计类应该同最小数目的其他类相联系以完成该类的职责,32,良好的设计类:良好的接口,接口是类的一组公共方法 一般情况下,应保持接口中方法的数量、方法中参数的数量最小,33,建立系统设计模型:精化分析关系,在分析模型中,类之间的关系具有组合、聚合、关联、继承关系 对于一般的OO编程语言,都会直接支持组合、聚合、继承关系,但不一定支持关联关系 在设计阶段,需要将关联关系(1:1、1:N、N:1、M:N)转化为组合或聚合关系,34,建立系统设计模型:精化分析关系,1:1的关系通常意味着组合关系,因此,对于1:1的关联关系,可以直接转化为组合关系 对于具有1:1关

8、系的两个类A、B,如果A或B不是一个特别重要的类,可以将其转化为B或A的属性,35,建立系统设计模型:精化分析关系,N:1的关系是指整体一端的多重性大于1,而部分一端的多重性恰好是1的情况 对于上述N:1的关系,应将其直接转化为聚合关系,因为部分被许多整体共享,36,建立系统设计模型:精化分析关系,1:N的关系是指整体一端的多重性恰好是1,而部分一端的多重性大于1的情况 对于上述1:N的关系,在关系的部分一端有一个对象的汇集,为了实现这样一个关系,必须使用编程语言提供的汇集支持或汇集类 进行关系转化时,从整体到汇集类的关系通常是组合关系,从汇集类到部分的关系通常是聚合关系,37,建立系统设计模

9、型:精化分析关系,对于汇集支持,一般编程语言都通过数组实现,但数组的长度有限制 对于汇集类,是OO语言中的一种特殊的类,专门管理对象的汇集,所有的汇集类均具有下列方法:,向汇集中添加对象 从汇集中删除对象 在汇集中检索对象 遍历汇集,38,建立系统设计模型:精化分析关系,对于M:N的关系,需要引入关联类,并识别整体的一端,将其转化为组合和聚合关系,39,建立系统设计模型:体系结构设计,系统体系结构设计是对系统软硬件资源进行统一规划,包括数据结构设计、图形用户接口、网络、数据库管理系统、程序设计语言、系统结构等 一般的应用系统包括业务对象管理、人机界面、系统接口、数据管理、任务管理,40,建立系

10、统设计模型:体系结构设计,数据库系统,41,系统体系结构设计:任务管理,根据对对象动态模型分析,可以发现系统是否具有并发性,决定采用主从结构还是分布式结构 主从结构设计:如果对象或子系统不是同时活动的,则不需要并发处理,应采用主从结构 分布式结构:如果对象或子系统必须对一些事件同时异步地动作,则需要并发处理,应采用分布式结构 采用分布式结构时,当并发任务较多时,应增加任务协调者及资源管理功能,42,系统体系结构设计:人机界面,对于大多数系统而言,人机界面是一个非常重要的组成部分,人机界面主要包括窗口布局设计、菜单设计及输出报告设计,43,系统体系结构设计:数据管理,数据结构设计:根据系统对象的

11、数据种类和特性,为各对象类的属性赋予合适的数据类型 数据管理设计:为了支持不同类型的数据库管理系统,应设计单独的数据管理类,该类应包括基本的数据管理方法,包括creat、insert、delete、update、select等 数据库设计:如果采用关系数据库,基于系统中业务对象类进行数据库设计,44,系统体系结构设计:数据库设计,每个类映射到一个表 对于1:1、1:M的关联关系,进行键的迁移,对于M:N的关链关系,将关联类映射到一个表 对于继承关系,超类的关键字属性迁移到每个子类对应的表中 对于组合和聚合关系,将整体的关键字属性迁移到部分类对应的表中,45,建立系统设计模型:子系统设计,通常情

12、况下,对于中等规模的系统,可能有30-100个对象,对于大型系统,则对象会更多,面对如此多的对象及其相互关联,要对每个对象及其相互关联有一个清晰的了解是十分困难的,因此,可以将对象分组,我们将许多相关对象的组合称为子系统 根据系统规模的大小不同,系统所包含的子系统的数目也不等,有时,还可以将子系统形成层次结构,使子系统中包含子系统,,46,子系统设计:UML中的表示方法,子系统表示方法,47,子系统设计:子系统设计原则,相互之间关联紧密的那些对象划分为一个子系统; 子系统之间的耦合性最小,即关联最少; 一个子系统最好只与唯一的一个用户类相关,48,子系统设计:子系统设计方法,分析系统主要业务,

13、以每个主要业务对象为核心,将主要业务对象及与其相关的对象划分为一个子系统,然后根据子系统之间的关联程度决定是否进行某些子系统的合并,在考查对象之间的关联时,应着重考虑以下问题:,49,子系统设计:子系统设计方法,一个对象的变化是否会引起另一个对象的变化,如果是,则将其划分到同一个子系统,否则,划分到不同的子系统; 两个对象是否与同一个用户类有关,如果是,则划分为同一个子系统,否则,划分为不同的子系统; 两个对象是否都与第三个对象有关,如果是,划分为同一个子系统,否则,划分为不同的子系统,50,建立系统设计模型:系统接口设计,接口由一组操作组成,每个操作必须包括完整的名称、描述操作语义的规格说明

14、,类似于消息 接口不具有属性、操作的实现及与其它任何元素的关联 接口可以附属于类、组件、子系统 将接口与实现相分离,有利于连接到接口的类具有多种实现方式,使系统分析与设计和具体的实现环境相分离,51,系统接口设计:UML中的表示方法,activate,接口,实现关系,类风格表示,速记风格表示,52,系统接口设计:识别接口,查看每个关联,如果关联确实需要比将它连接到特定的类更加灵活,可以考虑使用接口 考察每个发送的消息,如果发送的消息应该更加通用,可以考虑使用接口 识别在多于一个类中重复的操作集合,将其作为接口 识别系统未来扩展的可能性,如果可能有新的类加入系统,尽量定义一个或多个接口,53,建

15、立系统设计模型:类设计,完善与确认类属性 完善与确认类操作/方法 设计方法的算法及处理流程(对复杂方法而言),54,类设计:完善与确认属性,order -orderID:String +customerID:String -ordertype:String +odirectorID:String -orderdate:Date -orderstate:String = “create” -ordergoods:String,55,类设计:完善与确认操作/方法,56,类设计:设计操作/方法处理流程,57,建立系统设计模型的过程,58,面向对象的系统构造:建立系统实现模型,系统实现过程主要是将设计

16、模型转化为可执行代码的过程 系统实现模型主要组件图及部署图描述,59,建立系统实现模型:组件,组件是系统可替换的物理部件,每个组件可能包含多个类并实现多个接口 组件可以表现为多种形式:,源代码文件 二进制代码文件,如ActiveX控件、JavaBean Enterprise JavaBean(EJB)、各种DLL 可执行程序文件,60,组件:与类的相同点,组件和类都具有有含义的名称 组件和类都可以参与依赖、继承、关联关系与交互 组件和类都可以被嵌套 组件和类都可以实例化,61,组件:与类的不同点,抽象方式不同:组件是程序代码的物理抽象,可以驻留在节点上;类是逻辑抽象,不能单独驻留在节点上 抽象层次不同:组件表示一个物理模块,可以包含多个类,组件依赖它所包含的类;类是一个逻辑模块,只能从属于某个组件,类通过组件来实现 访问方式不同:组件不直接拥有属性和操作,只能通过接口访问其操作;类直接拥有自己的属性和操作,可以直接访问其操作,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号