软件工程3面向对象体系结构设计.ppt
- 文档编号:2197566
- 上传时间:2022-10-27
- 格式:PPT
- 页数:108
- 大小:1.51MB
软件工程3面向对象体系结构设计.ppt
《软件工程3面向对象体系结构设计.ppt》由会员分享,可在线阅读,更多相关《软件工程3面向对象体系结构设计.ppt(108页珍藏版)》请在冰豆网上搜索。
软件工程软件工程面向对象设计面向对象设计过程的任务任务面向对象的设计是将分析获得的需求变成抽象的系统实现方案的过程面向对象设计包括系统设计和对象设计系统设计是整个系统的全面组织,包括了如何把整个系统划分为子系统的策略,子系统的软硬件布局,以及设计框架细节的主要概念和策略性决策对象设计是根据具体的实现策略,对分析模型进行扩充的过程系统设计系统层次结构设计(体系结构设计)系统数据存储设计系统资源访问设计网络与分布设计并发性设计对象互操作方式设计边界条件和例外处理等内容的设计对象设计静态结构设计为了便于系统的实现和优化,在设计过程中需要对问题域的对象模型进行扩展和重构动态行为模型设计根据静态结构,对动态行为分析模型进行相应的扩充,获得完整的动态行为模型分析模型分析模型设计模型设计模型概念模型,它回避了实现细节,是系统的抽象物理模型,它是实现蓝图适用于各种设计,对设计是通用的设计不是通用的,它是针对特定的实现有三种类的构造型:
控制类、边界类、实体类类的构造型依赖于具体的实现语言不太形式化比较形式化开发费用较低开发费用大约是分析模型的5倍层数少层数多动态的动态的,特别关注时序勾画系统的设计轮廓进行系统的设计,包括系统构架主要通过研讨会等方式创建设计模型和实现模型需要开发成双向模型面向对象的设计原则封装抽象信息隐藏强内聚服务内聚类内聚一般-特殊内聚弱耦合交互耦合继承耦合可复用实例复用继承复用多态复用不同的表示方法需要不同的操作操作与数据结构和数据大小有关操作与外部设备特性有关实现算法将来可能会改进简洁化设计设计简单的类使用简单的协议设计结果简单明了软件体系结构体系结构的领域分类技术该体系结构涉及构建应用程序所需的许多工具,这些工具包括数据库技术、构建工具、源代码控制、配置管理、事务监控软件和软件的分发。
数据访问这一体系结构涉及到在应用程序中如何访问数据,和数据访问的基础设施(如JDBC).应用程序的分割该体系结构涉及到如何分割应用程序,包括的应用程序的各层进行分割的分割策略和各层的管理方式。
技术该体系结构涉及构建应用程序所需的许多工具,这些工具包括数据库技术、构建工具、源代码控制、配置管理、事务监控软件和软件的分发。
网上招聘系统项目初步体系结构(技术领域)组成部分组成部分实现实现硬件:
客户机基于PentiumIII600MHz的客户机,128MB内存8GB硬盘硬件:
服务器基于双CPU700MHzPentiumIII的服务器,1GB内存,由RAID5I/O子系统支持的60GB存储软件:
操作系统(服务器)Windows2000Server软件:
操作系统(客户机)Windows2000Professional软件:
应用程序(客户机)任意浏览器软件:
数据库(服务器)MicrosoftSQLServer2000或Oracle9i软件:
事务处理(服务器)带有JDBC事务支持的JavaBean软件:
web(服务器)MicrosoftInternet信息服务器,ApacheTomcat服务器,或商业应用服务器,如BEAWebLogic软件:
web接口(服务器)Servlet和JSP软件:
可视化建模RationalRose(企业版)和TogetherSoft的TogetherControlCenter协议:
网络TCP/IP协议:
数据库JDBC-ODBC桥数据访问这一体系结构涉及到在应用程序中如何访问数据,和数据访问的基础设施(如JDBC).例如:
链接池(spooling)缓存(cache)失败和恢复计划(Failoverandrecoveryplanned)数据和文件存储(Dataandfilestoragedefined)应用程序的分割该体系结构涉及到如何分割应用程序,包括的应用程序的各层进行分割的分割策略和各层的管理方式。
策略按功能进行划分按系统的物理布局进行划分按软件层次划分按服务进行划分按软件层次组织子系统分离服务应用程序的三个逻辑(服务)层表示服务业务服务数据服务表示层业务逻辑层数据存储层客户管理模块表示层业务逻辑层数据存储层订单管理模块表示层业务逻辑层数据存储层库存管理模块1、垂直方向功能分解块2、水平方向服务分层层应用程序的逻辑层次与功能层次之间的关系层层范围范围目标目标表示服务数据表示易用性数据接收自然、直观的用户交互图形用户界面快速的响应时间业务服务核心业务规则业务规则的严格实施应用程序/对话框流程控制对代码投资的保护数据完整性的实施减少维护成本数据服务持久数据存储和检索一致、可靠、安全的数据库通过API访问DBMS信息共享并发控制快速的响应时间各个逻辑层的范围和目标各层动态性比较表示服务层动态性强可能会采用不同的表现形式图形用户界面可能会随时间进行演变业务服务层动态性强应用程序的规则和功能是经常发生变化的数据服务层动态性较弱,相对稳定数据访问方式一般不发生变化逻辑层与物理层三个服务层实际为三个逻辑层,对应两个物理层这种解决方案为客户户机/服务器,也称为胖客户或客户中心式客户/服务器结构的不足应用程序的任何一部分发生改动,必须更新客户端软件对数据库连接资源的缓存很差,对事物吞吐量没有优化资源利用不当。
改进分层策略传统三层模型需要进一步细分业务服务层实际上包括两种类型的服务:
业务环境和业务规则数据服务层实际上包括三种类型的服务:
数据转换、数据访问和数据库六层间的通信各层之间采用何种方式进行通信例如本地socket应用程序通过套接字向网络发出请求或者应答网络请求CORBA技术应用程序和其他的应用程序通讯,而不论他们在什么地方或者由谁来设计RMI支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用IIOP(InternetInter-ORBProtocol)综合了RMI和CORBA的优点,克服了他们的缺点JNI可在本地调用动态链接库,可共享库文件HTTPWeb前端使用超文本传输协议RP项目的组建策略关于web接口执行体系结构特定于应用程序而选择的技术、产品和体系结构的集合,成为应用程序的执行体系结构ApplicationRDBMS职责:
页面表示逻辑、业务逻辑、数据访问逻辑职责:
永久保存数据、保证数据完整性J2EE实现范式:
JSP内含Java和JDBC代码J2EE应用体系结构的演进(2层)J2EE应用体系结构的演进(3层)RDBMSBusinesslogicPresentationlogicJ2EE实现范式:
SunModel1(JSP+JavaBean)职责:
页面显示+页面跳转+应用控制逻辑职责:
核心业务操作J2EE应用体系结构的演进(4层)RDBMSBusinesslogicControllerViewJ2EE实现范式:
SunModle2(Jsp+Servlet+JavaBean/EJB)职责:
页面显示职责:
页面跳转+应用控制逻辑J2EE应用体系结构的演进(5层)RDBMSBusinesslogicDAOControllerView职责:
数据的CRUD操作+对象关系映射职责:
核心业务操作J2EE应用体系结构的演进(6层)VCMMVCFrameworkStruts、JSF、TepestryO/RMapperORMMiddleware:
Hibernate、JDO、ApacheOJBDAO模式RDBMSBusinesslogicDAOORMControllerView活动一构架设计活动目标实施模型的节点设计模型中的主要子系统及其接口主要的设计类通用设计机制内容构造系统物理模型定义并设计子系统定义对系统框架有重要意义的设计类设计具有共性的非功能需求框架设计活动定义并设计子系统表示服务层、业务环境服务层和业务规则服务层信息系统的架构模型表示服务层(用户界面)与用户的交互,接收用户的各种输入以及输出各种提示信息或处理结果。
业务环境服务层这个逻辑层主要关注在系统和应用程序的一次给定交互期间所发生的情况,特别是语法和上下文的编辑语法编辑:
在信息离开用户界面之前,对它进行格式化和清洗。
这些编辑所涉及的工作从数值范围检查到有效日期的格式化。
上下文编辑:
更多地集中在信息中与业务相关的方面包含类:
业务规则服务层该层是实体类对象活动的场所业务规则在物理上实现为实体类,它实际上是面向数据流程的。
其它业务规则服务则处理数据管理业务实现各种业务处理逻辑或处理算法。
验证请求者的权限。
向数据访问对象发送数据持久化操作的请求。
向用户界面层返回处理结果。
这里使用了代理(Proxy)模式,用户界面对象只能通过业务代理对象来向业务对象发送请求。
业务代理对象首先判断请求者的权限,然后转发合法请求者的请求。
包含类:
数据访问层的职责是:
实现数据的持久化操作(本书假设数据的存储由关系数据库来完成)。
实现事务处理。
对于每一个业务处理中需要持久化操作的对象都可以对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理。
这里的数据库连接类的创建用到了单件(Singleton)模式,保证一个类仅有一个实例,一个客户在同一时刻只能用一个数据库连接对象。
MVC框架MVC框架中的模型是实体类。
模型的目标就是保持框架的纯粹性,使之避免对用户界面的了解MVC框架中的视图就是渲染过的界面,客户所看到的就是视图。
MVC框架中的控制器是一些服务,通常用作模型和视图之间的中介。
有两种类可用于实现系统中的控制器。
第一种是servlet。
Servlet用作用户界面控制器和转发器,它实例化消息,并将消息转发到另一种类,用例控制器。
可以使用一个JavaBean作为每一个用例的用例控制器模型-视图-控制器框架向组件映射的过程从用例找到领域类从用例创建动态模型,并对类进行建模对于每一个用例,都会实现一个用例控制器使用用例控制器包含了操作,实现了一些组织好的逻辑,用以执行一个序列图协作的类通过维护联系用例获取顾客信息,返回到应用程序的各层来映射一个简单的交互。
1、职员通过请求一个web页面与web服务器进行交互。
可以在该web页面上输入一个顾客编号。
2、传过来一个HTTPget请求3、RemularkServlet实例化控制器UCMaintainRltnshp,并发送消息rltnCustomerInquiry().4、用例控制器请求CustomerBean调用findByCustomerNumber(),并传递顾客编号。
5、CustomerBean请求CostomerDAO调用findByName(),结果新创建一个CustomerValue对象。
6、findByName()操作将CustomerValue对象返回到CustomerBean.7、CustomerBean将CustomerValue返回到UCMaintainRltnshp。
8、UCMaintainRltnshp将CustomerValue返回到RemularkServlet。
9、RemularkServlet用setAttribute()操作将CustomerValue对象设置到servlet的Request区域中。
10、RemularkServlet获得一个对servlet的RequestDispatcher对象的引用,然后对该对象发出forward()操作,传递的参数为rltnInquiry.jsp。
11、该过程会强制调用现在编译的JSP/servlet的service()操作。
JSP/servlet会创建HTML输出,并发送到浏览器12、HTML表单到达浏览器使用servlet容器时的部署策略活动二:
用例实现-设计活动三:
设计一个类活动四:
数据存储设计将类映射到表将类和表进行一对一映射缺点产生过多的表产生过多的连接遗漏的表对泛化/特化关联(继承)的不当处理数据的非规范化简单关联的映射开始将类转换为实体关系之前,必须确定这些类是需要持久保存的类之间的重数数据库操作一对一为每个类分别创建一个表每个表中的主码也
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 面向 对象 体系结构 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)