软件系统设计

上传人:gb****c 文档编号:243386007 上传时间:2024-09-22 格式:PPT 页数:73 大小:797KB
返回 下载 相关 举报
软件系统设计_第1页
第1页 / 共73页
软件系统设计_第2页
第2页 / 共73页
软件系统设计_第3页
第3页 / 共73页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,73,软件系统设计,软件系统的组成,物理结构,逻辑结构,软件系统设计的原则,掌握设计、部署用户表示层,掌握设计、部署业务逻辑层,掌握设计、部署数据层,实例演示,(.NET),训练,:,订单管理系统的实现,掌握数据传输对象,(DTO),模式的设计与,.NET,实现,企业级应用程序部署,剖析软件系统的结构,软件系统由什么组成,:,程序代码、控件、数据库、文档,服务器、客户机,我们关注软件系统内部结构,物理结构,有多少类台机器,?,它们的职责的是什么,?,如何分布?,部署的问题,系统架构,逻辑结构,软件系统内部如何组织?,软件,(,应用,),架构的,软件系统物理结构发展史,单主机方式,单机,-IBM AS400,客户机,-,服务器,(C/S),方式,PB, Delphi, VB6.0,FoxPro,应用程序,客户机,-,服务器,客户机,-,服务器,(B/S),方式,WEB-BASE,应用程序,客户机,-WEB/,应用服务器,-,数据库服务器,四层结构,目前最为常用的部署结构,客户机,-WEB,服务器,-,应用服务器,-,数据库服务器,物理结构,-,单主机方式,特点:,由单主机完成所有功能,主机昂贵,并发数量有限,伸缩性差,应用范围有限,用户界面交互性差,哑终端,数据显示,数据输入,示例,:,IBM Mainframe,物理结构,-,C/S,结构,(,二节点,),客户机,数据表示,/,输入,/,验证,业务逻辑,服务器,数据存储,业务逻辑,特点,:,丰富的用户交互界面,部署困难,(,目前向智能客户端方面发展,),两种实现,:,胖客户端、痩客户端,客户端/服务器的实现,痩客户端,业务逻辑在服务端实现,存储过程、触发器,数据库移可植性好,客户端配置要求一般,胖客户端,业务逻辑有客户端实现,程序可植性好,客户端配置要求高,物理结构,-,B/S,结构,(,三节点,),客户机,数据表示,/,输入,/,验证,WEB/,应用服务器,业务逻辑,系统服务,数据服务器,数据存储,业务逻辑,特点,:,简化部署问题,好的响应能力,服务器成为系统瓶颈,伸缩性不太好,用户界面交互能力差,(AJAX,方向发展,),物理结构,-,B/S,结构,(,四节点,),客户机,数据表示,/,输入,/,验证,WEB,服务器,系统服务,应用服务器,业务逻辑,数据服务器,数据存储,业务逻辑,特点,:,简化部署问题,更好的响应能力,伸缩性好,交互能力取决于客户端,是目前最为经典的结构,软件系统逻辑结构,解决问题,:,软件系统由哪件些部件组成,?,各个部件成什么样的功能,?,各个部件如何协作、通信?,系统逻辑分层原理,软件系统逻辑分层,软件系统的部件,经典的三层结构,系统逻辑分层(Layered)原理,问题”分而治之,”,的处理方式,职责分配原理,相互协作,向上服务的原理,示例,:,ISO/OSI,模型,Windows,系统,系统分层的分类,分类,Strictly layered,只能调用下层提供的服务,Relaxed layered,可以跨层调用,Layer Super type(,超层,),每一层的公用行为,可以由所有层调用,抽象接口,每一层的部件对外的名称,上一层通过这个名称调用请求服务,关健概念,服务,应用逻辑的分散单元,把基于消息、适合通过网络访问的接口展示出来,基于服务的架构允许非常灵活的部署战略,服务可以用来平衡网络计算资源,面不要求所有的数据的逻辑驻在一台计算机上,企业应用,-,发展新模式,面向服务体系结构,SOA,面向服务结构-软件部件的分类,把功能相同,/,或相似的组件组织成了“层“,(Layer),如我们常见的三层结构,:,表示层,业务逻辑层,数据层,系统服务层,经典的三层结构,表示层,用户界面和界面处理,数据验证,输入,数据显示,Windows Form(,或智能客户,),、,Web Form,逻辑层,业务逻辑处理,业务流程控制,数据层,访问外部数据源(数据库、,XML etc),三层结构的组成部件,表示层,用户界面部件,(UIC),用户界面处理部件,(UPC),业务逻辑层,业务部件,(BC),业务工作流,(BWF),业务实体,业务接口,数据层,数据访问组件,服务代理,表示层,用户界面部件,(UIC),按钮、文本框、下拉列表等控件,Win form,System.Windows.Forms and controls,Web form,System.Web.UI.WebControls,System.Web.UI.HtmlControls,用户处理部件,(UPC),分隔用户界面和业务逻辑,下一步,执行什么,?,Front Controller, Application Controller,模式参考,业务逻辑层,业务组件,处理特定的业务问题,-,封装了业务逻辑,/,规则,业务工作流,协调多个业务组件,共同完成某个业务处理过程,业务实体,是数据容器,表示业务逻辑里的一个对象,业务工作流和业务组件过业务实体交互,DTO,的一个用法,服务接口,业务外观层,外部调用接口,数据层,数据访问逻辑组件,隔离数据源和业务逻辑层,业务层不在依赖于数据库,配置性和维护性,服务代理,调用外部服务接口,回顾,把功能相同,/,或相似的组件组织成了“层“,(Layer),如我们常见的三层结构,:,表示层,业务逻辑层,数据层,系统服务层,软件系统设计的原则,标识出您系统中所需要的部件,每个部件中,保持设计一致性,部件间低耦合、部件内高内聚,部件间统一的数据交换格式,XML, Serialized objects, DataReader,应用程序逻辑尽可以能抽象,/,使用接口,可以有不同的实现,开始设计时,决定层件调用规则,零售系统-示例场景,设计表现层,设计用户接口部件,设计用户接口处理部件,简单系统,UI,部件,Win Form & Web Form,复杂系统,使用,UPC,用户交互有流程,如向导程,设计表现层-零售系统,电子商务网站,外部用户,Win Form,应用程序,内部销售代表,执行相同的任务,查看产品、产品购买、付款结帐,设计用户界面部件,用户接口,-,管理用户的交互,显示数据,数据输入,-,文字、图片、声音、等,解释用户动作,不参与事务处理,可以封装数据显示和操作控制,设计用户界面部件,数据输入,数据输入提示,数据输入限制,数据输入验证,捕获用户动作事件,数据显示数据值的对照,可以使用单独部件进行数据缓存,可以使用单独部件进行分页处理,设计用户界面部件,数据显示,调用业务层数据层获取数据,数据格式化,数据本地化,获取的数据通常是业务实体,需要一些额外的代码(,UPC),去解析,自定义数据展示爱好,可以使用单独部件进行数据缓存,可以使用单独部件进行分页处理,用户接口调用示例,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,用户接口部件的交互,访问业务部件,访问用户处理部件,访问数据访问逻辑组件,尽管违反分层原理,但现实是存在的,需要将数据访问组件与,UI,一起部署,用户与系统的交互会按照一个特定流程,例如销售系统中的购买流程,输入购买的产品和数量,计算产品金额,输入付款信息,输入收货地址,购买流程中包含了多个步骤,使用用户处理部件完成这个购买流程,设计用户处理部件,设计用户处理部件,用户处理组件用类来实现,UI,可以调用用户处理组件类,UPC,类中方法封装了,:,完成一个流程所需的动作,示例,:,结帐处理,PurchaseUserProcess.cs,表示层设计,将用户交互分成用户界面和用户界面处理,特点,:,更好的管理用户交互,-,如可以撤消操作,多个用户界面可以重用相同的处理,处理并发用户的活动,设计,UIC,和,UPC,标识出用户交互要处理的业务处理,标识出业务处理所需要的数据,标识出用记交互过程中状态的变化,设计出用户交互流程,ASP.NET,的实现,Session,表示用户交互流程的变化,-,购物车,Windows Form,的实现,成员变量,用户处理组件设计,UPC设计建议,确定是否需要用户处理组件,如果用户处理过程长,中间状态需要应该保存数据库中,如果用户处理过程短,中间状态需要应该保存在内存,/,会话中,将用户处理组件设计支持序列化,可以支持成多种数据存储,业务层设计,业务组件,业务实体,服务接口,业务工作流,业务组件/业务工作流,是否需要业务工作流,?,业务处理包括多个步骤,?,是否包括多个业务组件去完成一个业务处理,?,保存业务处理中间状态,?,使用,BizTalk,服务器,什么时候不需要业务工作流,?,不需要维护业务处理中间状态,业务组件可以被多个业务处理重用,零售系统-订单生成,多个步骤,信用卡验证,付款,安排交货,交货确认,按照一定的秩序完成的,每一个步骤是由单独的业务组件完成的,设计业务部件,业务部件具有最基本的事务性,封装使用业务规则,/,业务逻辑,被表现层,/,业务工作流调用,/,服务接口,调用数据层,/,数据访问逻辑,COM/COM+,部署在应用服务器上,.NET业务部件设计,由类的方法实现,业务组件处理事务,数据输入,/,输出的验证,调用数据访问数据层,/,服务代理,起动业务工作流,异常处理,业务部件可以被以下,:,服务接口,用户处理部件,业务工作流,其它业务部件,典型的业务部件,业务组件可以被表示层调用,可以被服务接口调用,可以调用,DALC,可以服务代理层,外部服务,数据传输方式,XML,DataReader,DataSet,Typed DataSet,Custom object(,业务实体,),业务实体设计,能过属性来访问,(Get,和,Set),集合数据使用索引,也可用系统内置的,DataTable,业务实体成员的命名,Validate, Save, HasCheckedOut, IsLogged,通过方法使用的业务实体,提高可维护性、扩展性,根据系统象命名业务实体名称,Order,Customer,业务实体设计建议,考虑是否需要业务实体,增加编码工作量,所有的业务实体继承一个基类,业务实体需要串行化,为业务实体建个一个通用的实体接口,如,: Save, Load, Delete, IsDirty, andValidate.,业务实体验证数据,业务实体依赖于数据访问层而不是数据库,不要在这里写,SQL,业务层设计回顾,业务组件,业务实体,服务接口,业务工作流,设计数据层,用什么做数据存储,关系数据库,消息数据库,文件系统,XML,文件,数据访问逻辑部件,部件间传输格式,数据访问逻辑部件,提供,inserting, deleting, updating, retrieving,分页、排序,使用,data access helper,管理数据连接,特定的数据库操作,可以使用存储程,/,触发器,性能和可维护性,数据访问逻辑部件示例,OrderData.cs,public void,UpdateOrder(DataSet,updatedOrder,),/ code to update the database,/ Data in as a parameter of type dataset,数据访问逻辑部件设计建议,返回仅需要的数据,使用数据库完成数据密集型的操作,使用存储过程,/,触发器封装存储逻辑,:,insert, read, update, and find,功能,不同有客户端使用一致的数据接口,如果需要,数据加密操作,/,解密操作,仅在需要的地方使用事务管理,设计数据访问助理件,DAOHelper,重用数据库连接,操作,隔离数据库身份认证,隔离源信息,简化数据访问代码,针对不同数据库需要不同的DADOHelper,演示 Sample,客户订单查询功能,层次结构,用户界面层,WinForm/Web Form,业务逻辑层,数据层,DAO Helper,Sample Page,Demo Step,数据公用服务层,数据层,业务逻辑层,用户界面层,(Web Form),使用,DataSet,作为数据传输对象,重用业务逻辑层,Win Form,项目管理,数据公用服务层,DAOHelperLayer,数据层,DataLayer,业务逻辑层,BusinessLayer,用户界面层,(Web Form),WebFormProejct,DAOHelperLayer,Stirng connectionString,GetDataSet(string selectSql),GetDataRader(string dataReader),void executeSql(),数据DataLayer,GetCustomerOrderByID(string customerID),生成,SQL,连接语句,“Select,*,from customer where customer ID = ” + customerID + “”;,调用,DAOHelper,BusinessLayer-业务层,GetCustomerOrderByID(string customerID),生成,SQL,连接语句,“Select,*,from customer where customer ID = ” + customerID + “”;,调用数据层,表示层,用户界面组件,(UI),ASPX,用户处理部件,(UPC),CS/VB,重用表示层,Windows Form Project,训练-订单管理系统,客户档案管理,产品管理,订单管理,新增订单,查询订单,客户订单查询,数据库,northwind,Demo Step,数据公用服务层,数据层,业务逻辑层,用户界面层,(Web Form),使用,DataSet,作为数据传输对象,重用业务逻辑层,Win Form,项目管理,数据公用服务层,DAOHelperLayer,数据层,Data Layer,业务逻辑层,BusinessLayer,用户界面层,WebForm Project,实现总结,讨论,分层理解,服务接口实现,外部调用接口,Web Service,实现,DTO设计-DataSet,优点,:,开发工具支持,与控件集成,序列化,断开连接的数据库模型,缺点,:,互操作性,过期数据,对数据库架构的依赖性,性能可能降低,非类型安全,DTO设计-业务实体/对象,优点,:,类型安全,逻辑控制,缺点,:,产生太多的类,过多的代码,DTO设计,使用业务实体作为数据传输对象,业务实体设计,自定义对象,属性,集合数据,Array List,DTO,含例,:,CustomerObject.cs,演示-业务实体,创建业务实体项目,DTO,基类,订单实体,修改程序,表示层,业务逻辑层,数据层,训练-修改DTO,创建业务实体项目,DTO,基类,订单实体,修改程序,表示层,业务逻辑层,数据层,企业级应用程序的简单部署,完,谢谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!