软件系统设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
振阳软件技术培训中心
24
设计用户界面部件
数据输入
数据输入提示 数据输入限制 数据输入验证 捕获用户动作事件 数据显示/数据值的对照 可以使用单独部件进行数据缓存 可以使用单独部件进行分页处理
振阳软件技术培训中心
25
设计用户界面部件
数据显示
调用业务层/数据层获取数据 数据格式化 数据本地化 获取的数据通常是业务实体,需要一些额外的 代码(UPC)去解析 自定义数据展示爱好 可以使用单独部件进行数据缓存 可以使用单独部件进行分页处理
服务接口 用户处理部件 业务工作流 其它业务部件
40
振阳软件技术培训中心
典型的业务部件
业务组件可以被表示 层调用 可以被服务接口调用 可以调用DALC 可以服务代理层
外部服务
振阳软件技术培训中心
41
数据传输方式
XML DataReader DataSet Typed DataSet Custom object(业务实体)
单主机方式
单机-IBM AS400 PB, Delphi, VB6.0,FoxPro应用程序 客户机-服务器 WEB-BASE应用程序 客户机-WEB/应用服务器-数据库服务器 目前最为常用的部署结构 客户机-WEB服务器-应用服务器-数据库服务器
3
客户机-服务器(C/S)方式
客户机-服务器(B/S)方式
振阳软件技术培训中心
面向服务结构-软件部件的分类
把功能相同/或相似的组 件组织成了“层“(Layer) 如我们常见的三层结构:
表示层 业务逻辑层 数据层 系统服务层
振阳软件技术培训中心
13
经典的三层结构
表示层
用户界面和界面处理 数据验证,输入,数据显示 Windows Form(或智能客户)、Web Form
胖客户端
业务逻辑有客户端实现 程序可植性好 客户端配置要求高
振阳软件技术培训中心 6
物理结构- B/S结构(三节点)
1. 2.
客户机
数据表示/输入/验证
业务逻辑 系统服务 数据存储 业务逻辑
WEB/应用服务器
3.
数据服务器
特点:
简化部署问题 好的响应能力 服务器成为系统瓶颈 伸缩性不太好 用户界面交互能力差(AJAX方向发展)
将用户处理组件设计支持序列化,可以支持 成多种数据存储
振阳软件技术培训中心
34
振阳软件技术培训中心
35
业务层设计
业务组件 业务实体 服务接口 业务工作流
振阳软件技术培训中心
36
业务组件/业务工作流
是否需要业务工作流?
业务处理包括多个步骤? 是否包括多个业务组件去完成一个业务处理? 保存业务处理中间状态? 使用BizTalk服务器
什么时候不需要业务工作流?
不需要维护业务处理中间状态 业务组件可以被多个业务处理重用
37
振阳软件技术培训中心
零售系统-订单生成
多个步骤
信用卡验证 付款 安排交货 交货确认
按照一定的秩序完成的 每一个步骤是由单独的业务组件完成的
振阳软件技术培训中心
38
设计业务部件
8
软件系统逻辑结构
解决问题:
软件系统由哪件些部件组成? 各个部件成什么样的功能? 各个部件如何协作、通信?
系统逻辑分层原理 软件系统逻辑分层
软件系统的部件
经典的三层结构
振阳软件技术培训中心 9
系统逻辑分层(Layered)原理
问题”分而治之”的处理方式 职责分配原理 相互协作,向上服务的原理 示例:
软件系统设计
软件系统的组成
物理结构 逻辑结构
软件系统设计的原则 掌握设计、部署用户表示层 掌握设计、部署业务逻辑层 掌握设计、部署数据层 实例演示(.NET平台) 训练:
订单管理系统的实现
掌握数据传输对象(DTO)模式的设计与.NET实现 企业级应用程序部署
振阳软件技术培训中心
逻辑层
业务逻辑处理 业务流程控制
数据层
访问外部数据源(数据库、XML etc)
14
振阳软件技术培训中心
三层结构的组成部件
表示层
用户界面部件(UIC) 用户界面处理部件(UPC)
业务逻辑层
业务部件(BC) 业务工作流(BWF) 业务实体 业务接口
数据访问组件 服务代理
ISO/OSI模型 Windows系统
振阳软件技术培训中心
10
系统分层的分类
分类
Strictly layered
只能调用下层提供的服务
Relaxed layered
可以跨层调用
Layer Super type(超层)
每一层的公用行为,可以由所有层调用 每一层的部件对外的名称 上一层通过这个名称调用请求服务
用户处理部件(UPC)
分隔用户界面和业务逻辑 下一步,执行什么? Front Controller, Application Controller模式参考
16
振阳软件技术培训中心
业务逻辑层
业务组件
处理特定的业务问题-封装了业务逻辑/规则
协调多个业务组件,共同完成某个业务处理过程 是数据容器 表示业务逻辑里的一个对象 业务工作流和业务组件过业务实体交互 DTO的一个用法 业务外观层 外部调用接口
数据表示/输入/验证 业务逻辑
服务器
数据存储 业务逻辑 丰富的用户交互界面 部署困难(目前向智能客户端方面发展) 两种实现:胖客户端、痩客户端
特点:
振阳软件技术培训中心
5
客户端/服务器的实现
痩客户端
业务逻辑在服务端实现
存储过程、触发器
数据库移可植性好 客户端配置要求一般
振阳软件技术培训中心 27
用户接口部件的交互
访问业务部件 访问用户处理部件 访问数据访问逻辑组件
尽管违反分层原理,但现实是存在的 需要将数据访问组件与UI一起部署
振阳软件技术培训中心
28
设计用户处理部件
用户与系统的交互会按照一个特定流程 例如销售系统中的购买流程
输入购买的产品和数量 计算产品金额 输入付款信息 输入收货地址
表示层 业务逻辑层 数据层 系统服务层
振阳软件技术培训中心
19
软件系统设计的原则
标识出您系统中所需要的部件 每个部件中,保持设计一致性 部件间低耦合、部件内高内聚 部件间统一的数据交换格式
XML, Serialized objects, DataReader 可以有不同的实现
购买流程中包含了多个步骤 使用用户处理部件完成这个购买流程
振阳软件技术培训中心 29
设计用户处理部件
用户处理组件用类来实现 UI可以调用用户处理组件类 UPC类中方法封装了:
完成一个流程所需的动作
示例:
结帐处理 PurchaseUserProcess.cs
振阳软件技术培训中心
业务部件具有最基本的事务性 封装使用业务规则/业务逻辑 被表现层/业务工作流调用/服务接口 调用数据层/数据访问逻辑 COM/COM+ 部署在应用服务器上
振阳软件技术培训中心
39
.NET业务部件设计
由类的方法实现 业务组件处理事务 数据输入/输出的验证 调用数据访问数据层/服务代理 起动业务工作流 异常处理 业务部件可以被以下:
1
剖析软件系统的结构
软件系统由什么组成:
程序代码、控件、数据库、文档 服务器、客户机
我们关注软件系统内部结构
物理结构
有多少类台机器?它们的职责的是什么?如何分布? 部署的问题 系统架构 软件系统内部如何组织? 软件(应用)架构的
逻辑结构
振阳软件技术培训中心
2
软件系统物理结构发展史
应用程序逻辑尽可以能抽象/使用接口
开始设计时,决定层件调用规则
振阳软件技术培训中心 20
零售系统-示例场景
振阳软件技术培训中心
21
设计表现层
设计用户接口部件 设计用户接口处理部 件 简单系统
UI 部件 Win Form & Web Form
复杂系统
使用UPC 用户交互有流程 如向导程
Session 表示用户交互流程的变化-购物车
成员变量
32
Windows Form的实现
振阳软件技术培训中心
用户处理组件设计
振阳软件技术培训中心
33
UPC设计建议
确定是否需要用户处理组件 如果用户处理过程长
中间状态需要应该保存数据库中 中间状态需要应该保存在内存/会话中
如果用户处理过程短
7
振阳软件技术培训中心
物理结构- B/S结构(四节点)
1.
客户机
数据表示/输入/验证
2.
WEB服务器
系统服务
3.
应用服务器
业务逻辑
4.
数据服务器
数据存储 业务逻辑
特点:
简化部署问题 更好的响应能力 伸缩性好 交互能力取决于客户端 是目前最为经典的结构
振阳软件技术培训中心
振阳软件技术培训中心
22
设计表现层-零售系统
电子商务网站
外部用户
Win Form 应用程序
内部销售代表
查看产品、产品购买、付款结帐
执行相同的任务
振阳软件技术培训中心
23
设计用户界面部件
用户接口-管理用户的交互
显示数据 数据输入-文字、图片、声音、等 解释用户动作 不参与事务处理 可以封装数据显示和操作控制
业务工作流
业务实体
服务接口
振阳软件技术培训中心
17
数据层
数据访问逻辑组件
隔离数据源和业务逻辑层 业务层不在依赖于数据库 配置性和维护性
服务代理
调用外部服务接口
振阳软件技术培训中心
18
回顾
把功能相同/或相似的组 件组织成了“层“(Layer) 如我们常见的三层结构:
四层结构
振阳软件技术培训中心
物理结构-单主机方式
特点:
由单主机完成所有功能 主机昂贵,并发数量有限 伸缩性差,应用范围有限 用户界面交互性差 哑终端
wk.baidu.com
数据显示,数据输入
示例:
IBM Mainframe
4
振阳软件技术培训中心
物理结构- C/S结构(二节点)
客户机
振阳软件技术培训中心
42
业务实体设计
能过属性来访问(Get和Set) 集合数据使用索引
也可用系统内置的DataTable Validate, Save, HasCheckedOut, IsLogged 提高可维护性、扩展性 Order Customer
43
业务实体成员的命名
通过方法使用的业务实体
30
表示层设计
将用户交互分成用户界面和用户界面处理 特点:
更好的管理用户交互-如可以撤消操作 多个用户界面可以重用相同的处理 处理并发用户的活动
振阳软件技术培训中心
31
设计UIC和UPC
标识出用户交互要处理的业务处理 标识出业务处理所需要的数据 标识出用记交互过程中状态的变化 设计出用户交互流程 ASP.NET的实现
11
抽象接口
振阳软件技术培训中心
关健概念
服务
应用逻辑的分散单元 把基于消息、适合通过网络访问的接口展示出 来 基于服务的架构允许非常灵活的部署战略 服务可以用来平衡网络计算资源,面不要求所有 的数据的逻辑驻在一台计算机上
企业应用-发展新模式
面向服务体系结构[SOA]
12
26
振阳软件技术培训中心
用户接口调用示例
1. 2. 3. 4. 5. 6.
private void addItem_Click(object sender, System.EventArgs e) { AddItemToBasket(selectedProduct, selectedQuantity) } public void AddItemToBasket(int ProductID, int Quantity) { // code to add the item to the basket }
根据系统象命名业务实体名称
振阳软件技术培训中心
业务实体设计建议
考虑是否需要业务实体
数据层
振阳软件技术培训中心
15
表示层
用户界面部件(UIC)
按钮、文本框、下拉列表等控件 Win form
System.Windows.Forms and controls System.Web.UI.WebControls System.Web.UI.HtmlControls
Web form