收藏 分享(赏)

软件系统设计.ppt

上传人:Facebook 文档编号:3479963 上传时间:2018-11-03 格式:PPT 页数:73 大小:1.37MB
下载 相关 举报
软件系统设计.ppt_第1页
第1页 / 共73页
软件系统设计.ppt_第2页
第2页 / 共73页
软件系统设计.ppt_第3页
第3页 / 共73页
软件系统设计.ppt_第4页
第4页 / 共73页
软件系统设计.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

1、振阳软件技术培训中心,软件系统设计,软件系统的组成 物理结构 逻辑结构 软件系统设计的原则 掌握设计、部署用户表示层 掌握设计、部署业务逻辑层 掌握设计、部署数据层 实例演示(.NET平台) 训练: 订单管理系统的实现 掌握数据传输对象(DTO)模式的设计与.NET实现 企业级应用程序部署,振阳软件技术培训中心,剖析软件系统的结构,软件系统由什么组成: 程序代码、控件、数据库、文档 服务器、客户机 我们关注软件系统内部结构 物理结构 有多少类台机器?它们的职责的是什么?如何分布? 部署的问题 系统架构 逻辑结构 软件系统内部如何组织? 软件(应用)架构的,振阳软件技术培训中心,软件系统物理结构

2、发展史,单主机方式 单机-IBM AS400 客户机-服务器(C/S)方式 PB, Delphi, VB6.0,FoxPro应用程序 客户机-服务器 客户机-服务器(B/S)方式 WEB-BASE应用程序 客户机-WEB/应用服务器-数据库服务器 四层结构 目前最为常用的部署结构 客户机-WEB服务器-应用服务器-数据库服务器,振阳软件技术培训中心,物理结构-单主机方式,特点: 由单主机完成所有功能 主机昂贵,并发数量有限 伸缩性差,应用范围有限 用户界面交互性差 哑终端 数据显示,数据输入示例: IBM Mainframe,振阳软件技术培训中心,物理结构- C/S结构(二节点),客户机 数据

3、表示/输入/验证 业务逻辑 服务器 数据存储 业务逻辑 特点: 丰富的用户交互界面 部署困难(目前向智能客户端方面发展) 两种实现:胖客户端、痩客户端,振阳软件技术培训中心,客户端/服务器的实现,痩客户端 业务逻辑在服务端实现 存储过程、触发器 数据库移可植性好 客户端配置要求一般 胖客户端 业务逻辑有客户端实现 程序可植性好 客户端配置要求高,振阳软件技术培训中心,物理结构- B/S结构(三节点),客户机 数据表示/输入/验证 WEB/应用服务器 业务逻辑 系统服务 数据服务器 数据存储 业务逻辑 特点: 简化部署问题 好的响应能力 服务器成为系统瓶颈 伸缩性不太好 用户界面交互能力差(AJ

4、AX方向发展),振阳软件技术培训中心,物理结构- B/S结构(四节点),客户机 数据表示/输入/验证 WEB服务器 系统服务 应用服务器 业务逻辑 数据服务器 数据存储 业务逻辑 特点: 简化部署问题 更好的响应能力 伸缩性好 交互能力取决于客户端 是目前最为经典的结构,振阳软件技术培训中心,软件系统逻辑结构,解决问题: 软件系统由哪件些部件组成? 各个部件成什么样的功能? 各个部件如何协作、通信? 系统逻辑分层原理 软件系统逻辑分层 软件系统的部件 经典的三层结构,振阳软件技术培训中心,系统逻辑分层(Layered)原理,问题”分而治之”的处理方式 职责分配原理 相互协作,向上服务的原理 示

5、例: ISO/OSI模型 Windows系统,振阳软件技术培训中心,系统分层的分类,分类 Strictly layered 只能调用下层提供的服务 Relaxed layered 可以跨层调用 Layer Super type(超层) 每一层的公用行为,可以由所有层调用 抽象接口 每一层的部件对外的名称 上一层通过这个名称调用请求服务,振阳软件技术培训中心,关健概念,服务 应用逻辑的分散单元 把基于消息、适合通过网络访问的接口展示出来 基于服务的架构允许非常灵活的部署战略 服务可以用来平衡网络计算资源,面不要求所有的数据的逻辑驻在一台计算机上 企业应用-发展新模式 面向服务体系结构SOA,振阳

6、软件技术培训中心,面向服务结构-软件部件的分类,把功能相同/或相似的组件组织成了“层“(Layer) 如我们常见的三层结构: 表示层 业务逻辑层 数据层 系统服务层,振阳软件技术培训中心,经典的三层结构,表示层 用户界面和界面处理 数据验证,输入,数据显示 Windows Form(或智能客户)、Web Form 逻辑层 业务逻辑处理 业务流程控制 数据层 访问外部数据源(数据库、XML etc),振阳软件技术培训中心,三层结构的组成部件,表示层 用户界面部件(UIC) 用户界面处理部件(UPC) 业务逻辑层 业务部件(BC) 业务工作流(BWF) 业务实体 业务接口 数据层 数据访问组件 服

7、务代理,振阳软件技术培训中心,表示层,用户界面部件(UIC) 按钮、文本框、下拉列表等控件 Win form System.Windows.Forms and controls Web form System.Web.UI.WebControls System.Web.UI.HtmlControls 用户处理部件(UPC) 分隔用户界面和业务逻辑 下一步,执行什么? Front Controller, Application Controller模式参考,振阳软件技术培训中心,业务逻辑层,业务组件 处理特定的业务问题-封装了业务逻辑/规则 业务工作流 协调多个业务组件,共同完成某个业务处理过程

8、 业务实体 是数据容器 表示业务逻辑里的一个对象 业务工作流和业务组件过业务实体交互 DTO的一个用法 服务接口 业务外观层 外部调用接口,振阳软件技术培训中心,数据层,数据访问逻辑组件 隔离数据源和业务逻辑层 业务层不在依赖于数据库 配置性和维护性 服务代理 调用外部服务接口,振阳软件技术培训中心,回顾,把功能相同/或相似的组件组织成了“层“(Layer) 如我们常见的三层结构: 表示层 业务逻辑层 数据层 系统服务层,振阳软件技术培训中心,软件系统设计的原则,标识出您系统中所需要的部件 每个部件中,保持设计一致性 部件间低耦合、部件内高内聚 部件间统一的数据交换格式 XML, Serial

9、ized objects, DataReader 应用程序逻辑尽可以能抽象/使用接口 可以有不同的实现 开始设计时,决定层件调用规则,振阳软件技术培训中心,零售系统-示例场景,振阳软件技术培训中心,设计表现层,设计用户接口部件 设计用户接口处理部件 简单系统 UI 部件 Win Form & Web Form 复杂系统 使用UPC 用户交互有流程 如向导程,振阳软件技术培训中心,设计表现层-零售系统,电子商务网站 外部用户 Win Form 应用程序 内部销售代表 执行相同的任务 查看产品、产品购买、付款结帐,振阳软件技术培训中心,设计用户界面部件,用户接口-管理用户的交互 显示数据 数据输入

10、-文字、图片、声音、等 解释用户动作 不参与事务处理 可以封装数据显示和操作控制,振阳软件技术培训中心,设计用户界面部件,数据输入 数据输入提示 数据输入限制 数据输入验证 捕获用户动作事件 数据显示数据值的对照 可以使用单独部件进行数据缓存 可以使用单独部件进行分页处理,振阳软件技术培训中心,设计用户界面部件,数据显示 调用业务层数据层获取数据 数据格式化 数据本地化 获取的数据通常是业务实体,需要一些额外的代码(UPC)去解析 自定义数据展示爱好 可以使用单独部件进行数据缓存 可以使用单独部件进行分页处理,振阳软件技术培训中心,用户接口调用示例,private void addItem_C

11、lick(object sender, System.EventArgs e) AddItemToBasket(selectedProduct, selectedQuantity) public void AddItemToBasket(int ProductID, int Quantity) / code to add the item to the basket ,振阳软件技术培训中心,用户接口部件的交互,访问业务部件 访问用户处理部件 访问数据访问逻辑组件 尽管违反分层原理,但现实是存在的 需要将数据访问组件与UI一起部署,振阳软件技术培训中心,用户与系统的交互会按照一个特定流程 例如销

12、售系统中的购买流程 输入购买的产品和数量 计算产品金额 输入付款信息 输入收货地址 购买流程中包含了多个步骤 使用用户处理部件完成这个购买流程,设计用户处理部件,振阳软件技术培训中心,设计用户处理部件,用户处理组件用类来实现 UI可以调用用户处理组件类 UPC类中方法封装了: 完成一个流程所需的动作 示例: 结帐处理 PurchaseUserProcess.cs,振阳软件技术培训中心,表示层设计,将用户交互分成用户界面和用户界面处理 特点: 更好的管理用户交互-如可以撤消操作 多个用户界面可以重用相同的处理 处理并发用户的活动,振阳软件技术培训中心,设计UIC和UPC,标识出用户交互要处理的业

13、务处理 标识出业务处理所需要的数据 标识出用记交互过程中状态的变化 设计出用户交互流程 ASP.NET的实现 Session 表示用户交互流程的变化-购物车 Windows Form的实现 成员变量,振阳软件技术培训中心,用户处理组件设计,振阳软件技术培训中心,UPC设计建议,确定是否需要用户处理组件 如果用户处理过程长 中间状态需要应该保存数据库中 如果用户处理过程短 中间状态需要应该保存在内存/会话中 将用户处理组件设计支持序列化,可以支持成多种数据存储,振阳软件技术培训中心,振阳软件技术培训中心,业务层设计,业务组件 业务实体 服务接口 业务工作流,振阳软件技术培训中心,业务组件/业务工

14、作流,是否需要业务工作流? 业务处理包括多个步骤? 是否包括多个业务组件去完成一个业务处理? 保存业务处理中间状态? 使用BizTalk服务器 什么时候不需要业务工作流? 不需要维护业务处理中间状态 业务组件可以被多个业务处理重用,振阳软件技术培训中心,零售系统-订单生成,多个步骤 信用卡验证 付款 安排交货 交货确认 按照一定的秩序完成的 每一个步骤是由单独的业务组件完成的,振阳软件技术培训中心,设计业务部件,业务部件具有最基本的事务性 封装使用业务规则/业务逻辑 被表现层/业务工作流调用/服务接口 调用数据层/数据访问逻辑 COM/COM+ 部署在应用服务器上,振阳软件技术培训中心,.NE

15、T业务部件设计,由类的方法实现 业务组件处理事务 数据输入/输出的验证 调用数据访问数据层/服务代理 起动业务工作流 异常处理 业务部件可以被以下: 服务接口 用户处理部件 业务工作流 其它业务部件,振阳软件技术培训中心,典型的业务部件,业务组件可以被表示层调用 可以被服务接口调用 可以调用DALC 可以服务代理层 外部服务,振阳软件技术培训中心,数据传输方式,XML DataReader DataSet Typed DataSet Custom object(业务实体),振阳软件技术培训中心,业务实体设计,能过属性来访问(Get和Set) 集合数据使用索引 也可用系统内置的DataTable

16、 业务实体成员的命名 Validate, Save, HasCheckedOut, IsLogged 通过方法使用的业务实体 提高可维护性、扩展性 根据系统象命名业务实体名称 Order Customer,振阳软件技术培训中心,业务实体设计建议,考虑是否需要业务实体 增加编码工作量 所有的业务实体继承一个基类 业务实体需要串行化 为业务实体建个一个通用的实体接口 如: Save, Load, Delete, IsDirty, andValidate. 业务实体验证数据 业务实体依赖于数据访问层而不是数据库 不要在这里写SQL,振阳软件技术培训中心,业务层设计回顾,业务组件 业务实体 服务接口

17、业务工作流,振阳软件技术培训中心,振阳软件技术培训中心,设计数据层,用什么做数据存储 关系数据库 消息数据库 文件系统 XML文件 数据访问逻辑部件 部件间传输格式,振阳软件技术培训中心,数据访问逻辑部件,提供inserting, deleting, updating, retrieving 分页、排序 使用data access helper管理数据连接,特定的数据库操作 可以使用存储程/触发器 性能和可维护性,振阳软件技术培训中心,数据访问逻辑部件示例,OrderData.cs public void UpdateOrder(DataSet updatedOrder) / code to

18、update the database / Data in as a parameter of type dataset ,振阳软件技术培训中心,数据访问逻辑部件设计建议,返回仅需要的数据 使用数据库完成数据密集型的操作 使用存储过程/触发器封装存储逻辑: insert, read, update, and find 功能 不同有客户端使用一致的数据接口 如果需要,数据加密操作/解密操作 仅在需要的地方使用事务管理,振阳软件技术培训中心,设计数据访问助理件,DAOHelper 重用数据库连接,操作 隔离数据库身份认证 隔离源信息 简化数据访问代码 针对不同数据库需要不同的DADOHelper,

19、振阳软件技术培训中心,振阳软件技术培训中心,演示 Sample,客户订单查询功能 层次结构 用户界面层 WinForm/Web Form 业务逻辑层 数据层 DAO Helper,振阳软件技术培训中心,Sample Page,振阳软件技术培训中心,Demo Step,数据公用服务层 数据层 业务逻辑层 用户界面层(Web Form) 使用DataSet 作为数据传输对象重用业务逻辑层 Win Form,振阳软件技术培训中心,项目管理,数据公用服务层 DAOHelperLayer 数据层 DataLayer 业务逻辑层 BusinessLayer 用户界面层(Web Form) WebFormP

20、roejct,振阳软件技术培训中心,DAOHelperLayer,Stirng connectionString GetDataSet(string selectSql) GetDataRader(string dataReader) void executeSql(),振阳软件技术培训中心,数据DataLayer,GetCustomerOrderByID(string customerID) 生成 SQL 连接语句 “Select * from customer where customer ID = ” + customerID + “”; 调用DAOHelper,振阳软件技术培训中心,B

21、usinessLayer-业务层,GetCustomerOrderByID(string customerID) 生成 SQL 连接语句 “Select * from customer where customer ID = ” + customerID + “”; 调用数据层,振阳软件技术培训中心,表示层,用户界面组件(UI) ASPX 用户处理部件(UPC) CS/VB,振阳软件技术培训中心,重用表示层,Windows Form Project,振阳软件技术培训中心,训练-订单管理系统,客户档案管理 产品管理 订单管理 新增订单 查询订单 客户订单查询 数据库 northwind,振阳软件

22、技术培训中心,Demo Step,数据公用服务层 数据层 业务逻辑层 用户界面层(Web Form) 使用DataSet 作为数据传输对象重用业务逻辑层 Win Form,振阳软件技术培训中心,项目管理,数据公用服务层 DAOHelperLayer 数据层 Data Layer 业务逻辑层 BusinessLayer 用户界面层 WebForm Project,振阳软件技术培训中心,实现总结,讨论 分层理解,振阳软件技术培训中心,服务接口实现,外部调用接口 Web Service 实现,振阳软件技术培训中心,DTO设计-DataSet,优点: 开发工具支持 与控件集成 序列化 断开连接的数据库

23、模型 缺点: 互操作性 过期数据 对数据库架构的依赖性 性能可能降低 非类型安全,振阳软件技术培训中心,DTO设计-业务实体/对象,优点: 类型安全 逻辑控制 缺点: 产生太多的类 过多的代码,振阳软件技术培训中心,DTO设计,使用业务实体作为数据传输对象 业务实体设计 自定义对象 属性 集合数据 Array List DTO含例: CustomerObject.cs,振阳软件技术培训中心,演示-业务实体,创建业务实体项目 DTO 基类 订单实体 修改程序 表示层 业务逻辑层 数据层,振阳软件技术培训中心,训练-修改DTO,创建业务实体项目 DTO 基类 订单实体 修改程序 表示层 业务逻辑层 数据层,振阳软件技术培训中心,企业级应用程序的简单部署,振阳软件技术培训中心,完,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报