基于UML的第三波书店在线销售系统
Rose可以实现真正意义上的正向、逆向和双向工程,可以方便快捷地建立软件系统的原型模型,可缩短开发周期,降低维护成本,大幅度地提高程序的安全性,使编程过程更规范合理。
? 支持多种语言
用户可以根据自己在开发语言方面的需要灵活选择不同的版本。
? 为团队开发提供强有力的支持 ? 支持模型的Internet发布
? 生产使用简单且定制灵活的文档 ? 支持关系数据库的建模 2.1.2 实体建模
软件行业中最常被误解的一个术语实际上是我们非常熟悉的一个:实体关系(ER)。这是因为我们经常缺少一种能被开发团队的所有成员理解的共同定义。我们假定团队的每个成员都对与 ER 和 ER 建模相关的方法学、语法和机制(mechanics)有着同样清楚的理解。
ER 建模本身定义了在基于信息的系统的分析和设计中用到的方法。数据库设计者通常使用该方法来收集需求,并定义数据库系统的构架。该方法的输出是实体类型、关系类型和约束条件的清单。
2.1.3 UML中的简单约束
不幸的是,ER 建模没有为 ER 图的表示定义图解语法。数据库团队经常单独使用表示法,并且将 ER 建模限制在关系数据库设计的范围内。我们需要一种能让整个系统开发团队的成员获得更广泛理解的表示法。
统一建模语言(UML)是一种分析人员和软件开发人员广泛使用的语言,特别适合 ER 图的图形化表示。通过使用 UML,开发团队受益匪浅,这些获益包括团队成员间的交流更加简单,由于该语言是基于原模型的,因而更容易与知识库集成,标准化输入/输出格式(XMI)的使用,应用建模和数据建模的普遍使用,从分
6
基于UML的第三波书店在线销售系统
析到实施再到部署的统一表示,以及规格说明书的完整性。 2.2 三层结构技术在系统中的应用 2.2.1三层架构(3-tier application)
⑴、三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
表示层 响应数据客户请求 业务逻辑层 响 应数据 客户请求 数据访问层 图2.1 三层结构之间的关系
1)、表示层(UI):通俗讲就是展现给用户的界面,即用户
在使用一个系统的时候他的所见所得。 2)、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何
7
基于UML的第三波书店在线销售系统
影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。 3)、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。 2.2.2如何建立三层构架
决定如何划分你的层(是物理的还是不是物理的)是非常重要的。在划分时应考虑下面因素:
1、注意如果划分成物理层,你的应用程序的速度会因为不同服务器在网络中通信的延迟而减慢。所以,如果你决定用物理层,请确保获得性能的提升大于性能的降低。
2、按照n层架构设计你的应用程序。
3、部署以及维护物理分布式的应用程序的成本是很高的。你首先需要不止一台服务器,你还需要网络硬件来连接这些服务器。在这种情况下,部署应用变得更加复杂!因此这样做之前请确定这样做是否值得。
另外还要注意,你的应用程序的每层都做何使用。你也许因为运行的多个服务都需要某一层而把该层放到别台服务器上。例如,你也许会因为给不同的用户定制不同的表现层,而将业务逻辑层放于别处;你也许会因为还有其它的应用访问同一个数据库,而把SQL server服务放到别处。
8
基于UML的第三波书店在线销售系统
2.3 用户控件的应用
在 ASP.NET 中,使用与 ASP.NET 页相同的语法,以声明方式创作的服务器控件。该控件用 .ascx 扩展名保存为文本文件。用户控件允许对页功能进行分区和重用。第一次请求时,页框架立即将用户控件分析为从System.Web.UI.UserControl 派生的类,并将该类编译到一个程序集中;页框架在后面的请求中将重用该程序集。因为用户控件不需要预编译就可以进行页面样式创作和部署,所以开发起来很容易。
通常,开发服务器控件有两种方法:
第一种方法:就是所说的自定义控件开发,即继承如Control的基类实现服务器控件。
第二种方法:即开发用户控件。创建用户控件与创建普通ASP.NET Web页面类似,但是如同简述的那样,它们会有些不同。下面列举了创建用户控件必须采取的主要步骤:
(1)创建一个扩展名为.ascx的文本文件。这是用户控件和ASP.NET Web页面的第一个不同点,后者使用的扩展名为.aspx。 (2)在文本文件顶部添加@Control指令,并通过Language属性来设置所选择的编程语言,例如C#。这是用户控件和Web页面的第二个不同点,后者使用@Page指令而不是@Control。
(3)向文本文件添加HTML标记文本和ASP.NET服务器控件。可以添加除html、body和form之外的任何HTML标记。这是因为用户控件不能单独使用,而必须作为Web页面的一部分使用。这是用户控件和Web页面的第3个不同点。由于Web页面自身独立,因此最终用户能够直接访问它,对于用户控件则不是这样。 下面图示为本系统中我使用的一个控件:
图2.2 用户控件的利用
9
基于UML的第三波书店在线销售系统
2.4 数字水印效果的实现
数字水印(Digital Watermark)技术是将与多媒体内容相关或不相关的一些标示信息直接嵌入多媒体内容当中,但不影响原内容的使用价值,并不容易被人的知觉系统觉察或注意到。通过这些隐藏在多媒体内容中的信息,可以达到确认内容创建者、购买者,或者是否真实完整。数字水印是信息隐藏技术的一个重要研究方向。
数字水印效果的三种实现方法如下: (1) 直接编辑每张图片
使用图片编辑工具,对每张图片进行编辑。这种方法可以说是省脑力,费人工。 (2) 编程实现批量编辑图片
通过编程方式给图片批量添加数字水印效果。这种方式解决了上一种方法的问题,不过它也有一个问题,就是破坏了原始图片。 (3) 在图片显示时,动态添加数字水印效果 能不能不修改原始图片,只在服务器发送图片到客户端前我们做一些处理,动态的添加水印效果呢?答案是肯定的,就是使用HttpHandler技术。
2.3 水印图片
在我的网站系统中,我是通过创建HttpHandler程序来动态实现数字水印效果的。 2.5 ASP中session的用法
Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web
10