软件体系结构分层知识

软件体系结构--RPG 游戏制作软件

1)分层

2)写出每层的功能

3)向上提供接口

1. 分层 层次系统风格将软件结构组织成一个层次结构,一个分层系统是分层次组织的,每层对上层提供服务,同时对下层来讲也是一个服务的对象。在一些分层系统中,内部的层只对相邻的层可见。除了相邻的外层或经过挑选用于输出的特定函数以外,内层都被隐藏起来。这种风格支持基于可增加抽象层的设计。由于每~层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。 分层系统体系结构有以下优点:

第一,支持基于抽象程度递增的系统设计。这允许设计者可以将一个复杂系统设计按递增的步骤进行分解。

第二,支持扩充。因为每层至多和与之相邻的上层和下层交互,所以,改变某层的功能最多只会影响与之相邻的其它两层。

第三,支持重用。与抽象数据类型一样,只要对相邻层提供同样的接口,每层可以有很多不同的可相互替代的实现方法。因此,可能出现对于标准的层接口的定义可以有不同的实现方法。

但是分层系统体系结构也有存在缺点:

首先,并不是每个系统都可以很容易地划分为分层的模式。甚至即使一个系统可在逻辑上进行分层,但可能出于性能的考虑需要在逻辑上与处于高层的函数和处于低层的实现之间建立紧密的联系。

其次,很难找到一个合适的、正确的层次抽象方法。分层设计作为一个设计的理念方法,在软件设计中得到越来越广泛的应用,特别是在复杂大型软件的研制开发项目中。即使是在中小型软件的开发过程中,也要合理的把系统划分为几个层次,把服务接口一步步地建立起来。系统在进行软件层次设计时应遵循如下三个基本原则:

(1)实现和接口分离原则,这是对所有模块接口的一个通用原则。不同的层次实际上是不同的模块,只不过这些模块在逻辑关系上有上下的依赖关系。在这个分离原则之下,层次之间的互换性就可以得到保证。对于一般的软件设计来说,最常见的是抽象层,即把应用部分与一些具体的实现分离开来。

(2)单向性原则,软件的分层应该是单向的,即只能上层调用下层,反过来通常是不行的。因为上层调用下层,结果是上层离不开下层,但下层可以独立地存在:如果下层同时调用上层,上下层就紧密地耦合在一起,谁也离不开谁,形成了软件中的共生现象,导致模块的互换性和可重用性就得不到保证。

(3)服务接VI 的粒度提升原则,每层的存在应该是为了完成一定的使用,从软件设计和程序编写的角度来讲,应该向上一层提供更加方便快捷的服务接口。简单重复下一层功能的层是没有意义的,一般越往上层服务接口的粒度越大。对很多应用软件来说,在与数据库直接打交道的地方有数据抽象层。该层把上层的应用同具体的数据库引擎分离开来。在此之上,建立业务对象层(business object),把具体的业务逻辑反映到该层次上。再往上是交互的用户界面等。

多层结构系统具有良好的可拓展性、可维护性和稳定的系统质量,同时,可以提高软件的可重用性,节省项目的开发时间。在开发中,具体采取几层构架,可根据系统的业务繁简程度灵活运用

软件的分层

目前典型的应用软件的结构:三层结构

表述层:提供与用户交互的界面。GUI (图形用户界面)和web 页面是表述层的两个典型的例子。

业务逻辑层:实现各种业务逻辑。

数据库层:负责存放和管理应用的持久性业务数据。

区分物理层和逻辑层

软件的分层包含两种含义:一种是物理分层,即每一层都运行在单独的机器上,这意味着创建分布式的软件系统;一种是逻辑分层,指的是在单个软件模块中完成特定的功能。

业务逻辑层和数据库层运行在同一台机器上,这台机器即是应用服务器,又是数据库服务器,因此整个系统物理上分为两层,而逻辑上分为三层结构。

软件层的特征

软件层必须符合以下特征:

1、 每个层由一组相关的类或组件(如EJB )构成,共同完成特定的功能。

2、 层与层之间存在自上而下的依赖关系,即上层组件会访问下层组建的API ,而下层组件不应该依赖上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。(基本特征)

3、 每个层对上层公开API ,但具体的实现细节对外透明。当某一层的实现发生变化,只要它的API 不变,不会影响其它层的实现。(向上公开接口,封装实现细节)

软件分层的优点

恰当的为软件分层,将会提高软件的以下性能。

1、 伸缩性(指应用程序是否支持更多的用户)

2、 可维护性(指的是当发生需求变化,只需修改软件的某一部分,不会影响其它部分的代码。层数越多,可维护性也会不断提高)

3、 可扩展性(指的是在现有系统中增加新功能的难易程度)层数越少,增加新功能就越容易破坏现有的程序结构。层数越多,就可以在每个层中提供扩展点,不会打破应用的整体框架。

4、 可重用性(指的是程序代码没有冗余,同一个程序能满足各种需求)

5、 可管理性(管理系统的难易程度)

软件分层的缺点

软件分层越多,对软件设计人员的要求就越高。在设计阶段,必须花时间构思合理的体系结构。此外,软件层越多,调试会越困难。如果应用规模比较小,业务逻辑很简单,软件层数少反而会简化开发流程并提高开发效率。

Java 应用的持久化层

业务逻辑层不仅负责业务逻辑,而且直接访问数据库,提供对业务数据的增、删、改、查操作。为了把数据访问细节和业务逻辑分开,可以把数据访问作为单独的持久化层。

“数据访问”是专业术语,指的是在应用程序代码中生成恰当的SQL 语句,然后通过JDBC API访问数据库,对数据进行增、删、改、查。

持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API 。完善的持久化层应该达到以下目标:

1、 代码可重用性高,能够完成所有的数据库访问操作。

2、 如果需要的话,能够支持多种数据库平台。

3、 具有相对独立性,当持久化层的实现发生变化,不会影响上层的实现。

目前在持久化层领域,已经出现了许多优秀的ORM 软件,有的是商业性的,有的是开发源代码的。Hibernate 就是一种开发源代码的ORM 软件。ORM 软件具有中间件的特征。中间件是在应用程序和系统之间的连接管道。Hibernate 可看成是连接Java 应用和关系数据库的管道。中间件和普通应用程序代码的区别在于,前者具有很高的可重用性,对于各种应用领域都适用;后者和特定的业务功能相关,不同业务领域的应用程序代码显然不一样。中间

件的另一特点是透明性,作为Hibernate 的使用者,无需关心它是如何实现的,只需要知道如何访问它的接口就行了。

透明与封装具有同样的含义,软件的透明性是通过封装实现细节来实现的。

软件分层的基本概念

分层是软件设计中非常重要的思想,特别是面对较大的软件系统。分而治之是计算机中经常采用的一种方法。比如TCP/IP七层协议栈就是典型的分层应用。任何一个合格的软件开发者都必须掌握的分层思想。下面是软件分层的几个基本概念:

一、分层

1、经典的三层理论将应用分为三个层次

(1)表现层(Presentation Layer):显示信息,处理用户的请求

(2)领域/逻辑层(Domain Logic Layer):逻辑,实际的业务活动,系统中真正的核心

(3)数据访问层(Data Access Layer):与数据库、消息系统等的通信

实际应用中,有四层的五层(如:J2EE) 的。在 Windows .NET 中表示层可以通用数据感知组件访问数据库,使用很方便。但是这种技术破坏了层和层之间的依赖关系,对于大型软件的开发一般是不允许的,小型软件使用也未尝不可。

2、基本原则:领域层和数据源层绝对不要依赖于表现层。

二、表现层

用户界面,Web 页面或Windows 窗体。

三、领域层

领域逻辑的组织,三个模式:

(1)事务脚本:结构化

(2)领域模型:面向对象

(3)表模块:与记录集相关。.NET 中含有基于记录集的工具(DataTable/DataSet),则使用表模块较为方便。

四、数据访问层

为数据库表建立入口,使用入口的两种基本方法:

(1)行数据入口:每一行一个实例,面向对象的方式。

(2)表数据入口:记录集,如.NET 中的DataTable ,DataSet

软件体系结构--RPG 游戏制作软件

1)分层

2)写出每层的功能

3)向上提供接口

1. 分层 层次系统风格将软件结构组织成一个层次结构,一个分层系统是分层次组织的,每层对上层提供服务,同时对下层来讲也是一个服务的对象。在一些分层系统中,内部的层只对相邻的层可见。除了相邻的外层或经过挑选用于输出的特定函数以外,内层都被隐藏起来。这种风格支持基于可增加抽象层的设计。由于每~层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。 分层系统体系结构有以下优点:

第一,支持基于抽象程度递增的系统设计。这允许设计者可以将一个复杂系统设计按递增的步骤进行分解。

第二,支持扩充。因为每层至多和与之相邻的上层和下层交互,所以,改变某层的功能最多只会影响与之相邻的其它两层。

第三,支持重用。与抽象数据类型一样,只要对相邻层提供同样的接口,每层可以有很多不同的可相互替代的实现方法。因此,可能出现对于标准的层接口的定义可以有不同的实现方法。

但是分层系统体系结构也有存在缺点:

首先,并不是每个系统都可以很容易地划分为分层的模式。甚至即使一个系统可在逻辑上进行分层,但可能出于性能的考虑需要在逻辑上与处于高层的函数和处于低层的实现之间建立紧密的联系。

其次,很难找到一个合适的、正确的层次抽象方法。分层设计作为一个设计的理念方法,在软件设计中得到越来越广泛的应用,特别是在复杂大型软件的研制开发项目中。即使是在中小型软件的开发过程中,也要合理的把系统划分为几个层次,把服务接口一步步地建立起来。系统在进行软件层次设计时应遵循如下三个基本原则:

(1)实现和接口分离原则,这是对所有模块接口的一个通用原则。不同的层次实际上是不同的模块,只不过这些模块在逻辑关系上有上下的依赖关系。在这个分离原则之下,层次之间的互换性就可以得到保证。对于一般的软件设计来说,最常见的是抽象层,即把应用部分与一些具体的实现分离开来。

(2)单向性原则,软件的分层应该是单向的,即只能上层调用下层,反过来通常是不行的。因为上层调用下层,结果是上层离不开下层,但下层可以独立地存在:如果下层同时调用上层,上下层就紧密地耦合在一起,谁也离不开谁,形成了软件中的共生现象,导致模块的互换性和可重用性就得不到保证。

(3)服务接VI 的粒度提升原则,每层的存在应该是为了完成一定的使用,从软件设计和程序编写的角度来讲,应该向上一层提供更加方便快捷的服务接口。简单重复下一层功能的层是没有意义的,一般越往上层服务接口的粒度越大。对很多应用软件来说,在与数据库直接打交道的地方有数据抽象层。该层把上层的应用同具体的数据库引擎分离开来。在此之上,建立业务对象层(business object),把具体的业务逻辑反映到该层次上。再往上是交互的用户界面等。

多层结构系统具有良好的可拓展性、可维护性和稳定的系统质量,同时,可以提高软件的可重用性,节省项目的开发时间。在开发中,具体采取几层构架,可根据系统的业务繁简程度灵活运用

软件的分层

目前典型的应用软件的结构:三层结构

表述层:提供与用户交互的界面。GUI (图形用户界面)和web 页面是表述层的两个典型的例子。

业务逻辑层:实现各种业务逻辑。

数据库层:负责存放和管理应用的持久性业务数据。

区分物理层和逻辑层

软件的分层包含两种含义:一种是物理分层,即每一层都运行在单独的机器上,这意味着创建分布式的软件系统;一种是逻辑分层,指的是在单个软件模块中完成特定的功能。

业务逻辑层和数据库层运行在同一台机器上,这台机器即是应用服务器,又是数据库服务器,因此整个系统物理上分为两层,而逻辑上分为三层结构。

软件层的特征

软件层必须符合以下特征:

1、 每个层由一组相关的类或组件(如EJB )构成,共同完成特定的功能。

2、 层与层之间存在自上而下的依赖关系,即上层组件会访问下层组建的API ,而下层组件不应该依赖上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。(基本特征)

3、 每个层对上层公开API ,但具体的实现细节对外透明。当某一层的实现发生变化,只要它的API 不变,不会影响其它层的实现。(向上公开接口,封装实现细节)

软件分层的优点

恰当的为软件分层,将会提高软件的以下性能。

1、 伸缩性(指应用程序是否支持更多的用户)

2、 可维护性(指的是当发生需求变化,只需修改软件的某一部分,不会影响其它部分的代码。层数越多,可维护性也会不断提高)

3、 可扩展性(指的是在现有系统中增加新功能的难易程度)层数越少,增加新功能就越容易破坏现有的程序结构。层数越多,就可以在每个层中提供扩展点,不会打破应用的整体框架。

4、 可重用性(指的是程序代码没有冗余,同一个程序能满足各种需求)

5、 可管理性(管理系统的难易程度)

软件分层的缺点

软件分层越多,对软件设计人员的要求就越高。在设计阶段,必须花时间构思合理的体系结构。此外,软件层越多,调试会越困难。如果应用规模比较小,业务逻辑很简单,软件层数少反而会简化开发流程并提高开发效率。

Java 应用的持久化层

业务逻辑层不仅负责业务逻辑,而且直接访问数据库,提供对业务数据的增、删、改、查操作。为了把数据访问细节和业务逻辑分开,可以把数据访问作为单独的持久化层。

“数据访问”是专业术语,指的是在应用程序代码中生成恰当的SQL 语句,然后通过JDBC API访问数据库,对数据进行增、删、改、查。

持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API 。完善的持久化层应该达到以下目标:

1、 代码可重用性高,能够完成所有的数据库访问操作。

2、 如果需要的话,能够支持多种数据库平台。

3、 具有相对独立性,当持久化层的实现发生变化,不会影响上层的实现。

目前在持久化层领域,已经出现了许多优秀的ORM 软件,有的是商业性的,有的是开发源代码的。Hibernate 就是一种开发源代码的ORM 软件。ORM 软件具有中间件的特征。中间件是在应用程序和系统之间的连接管道。Hibernate 可看成是连接Java 应用和关系数据库的管道。中间件和普通应用程序代码的区别在于,前者具有很高的可重用性,对于各种应用领域都适用;后者和特定的业务功能相关,不同业务领域的应用程序代码显然不一样。中间

件的另一特点是透明性,作为Hibernate 的使用者,无需关心它是如何实现的,只需要知道如何访问它的接口就行了。

透明与封装具有同样的含义,软件的透明性是通过封装实现细节来实现的。

软件分层的基本概念

分层是软件设计中非常重要的思想,特别是面对较大的软件系统。分而治之是计算机中经常采用的一种方法。比如TCP/IP七层协议栈就是典型的分层应用。任何一个合格的软件开发者都必须掌握的分层思想。下面是软件分层的几个基本概念:

一、分层

1、经典的三层理论将应用分为三个层次

(1)表现层(Presentation Layer):显示信息,处理用户的请求

(2)领域/逻辑层(Domain Logic Layer):逻辑,实际的业务活动,系统中真正的核心

(3)数据访问层(Data Access Layer):与数据库、消息系统等的通信

实际应用中,有四层的五层(如:J2EE) 的。在 Windows .NET 中表示层可以通用数据感知组件访问数据库,使用很方便。但是这种技术破坏了层和层之间的依赖关系,对于大型软件的开发一般是不允许的,小型软件使用也未尝不可。

2、基本原则:领域层和数据源层绝对不要依赖于表现层。

二、表现层

用户界面,Web 页面或Windows 窗体。

三、领域层

领域逻辑的组织,三个模式:

(1)事务脚本:结构化

(2)领域模型:面向对象

(3)表模块:与记录集相关。.NET 中含有基于记录集的工具(DataTable/DataSet),则使用表模块较为方便。

四、数据访问层

为数据库表建立入口,使用入口的两种基本方法:

(1)行数据入口:每一行一个实例,面向对象的方式。

(2)表数据入口:记录集,如.NET 中的DataTable ,DataSet


相关文章

  • 粤教版高一下网络技术应用教案
  • 第一课时 [教学课题]认识计算机网络 [教学目标]: 知识技能: (1)了解计算机网络的主要功能.分类和拓扑结构: (2)理解计算机网络的基本概念, (3)列举并解释网络通信中常用的信息交换技术及其用途. 过程与方法: (1)学习计算机网络 ...查看


  • 计算机软件工程论文
  • 计算机软件开发中分层技术的运用 进入21世纪,我国科学技术产业进入到快速发展期,相应的计算机软件开发随之蓬勃发展.众所周知,计算机软件开发的核心在于构建网络框架,以往比较简单的开发系统显然不能够满足广大用户的个性化需求,面对纷扰繁杂的计算机 ...查看


  • 软件工程自学考试201101试卷
  • 中国自考人(www.zk8.com.cn)--700门自考课程 永久免费.完整 在线学习 快快加入我们吧! 全国2011年1月自学考试软件工程试题 课程代码:02333 一.单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出 ...查看


  • 网络协议分层知识集锦:七层.四层.五层
  • 一.概述 OSI(Open System Interconnection )开放系统互连的七层协议体系结构:概念清楚,理论比较完整,但既复杂又不用. TCP/IP 四层体系结构:简单,易于使用. 五层原理体系结构:综合 OSI 和 TCP/ ...查看


  • 计算机应用因特网知识点整理
  • 第三章 应用因特网知识点整理 7.1 计算机网络概述 1.计算机网络的发展历程 ①以数据通讯为主的第一代计算机网络 ②以资源共享为主的第二代计算机网络 ③体系标准化的第三代计算机网络 ④以INTERNET 为核心的第四代计算机网络 3.计算 ...查看


  • 不同软件计算筏板基础沉降对比分析
  • 第31卷第5期2009年10月 工程抗震与加固改造 Earthquake Resistant Engineering and Retrofitting Vol. 31, No 5 Oct. 2009 [文章编号] 1002 8412(200 ...查看


  • 模拟施工方法选择
  • SATWE 软件中如何选择模拟施工加载 如何选择"模拟施工加载1"."模拟施工加载2". "模拟施工加载3"和"一次性加载"? 在目前的SATWE 软件中,程序 ...查看


  • 通信工程师互联网技术考点梳理(四)
  • 通信工程师互联网技术考点梳理(四) 下面是由希赛小编整理的通信互联网技术考点精讲之计算机网络的体系结构,希望能帮助学友们.具体内容如下: 计算机网络的体系结构 网络体系结构为了完成计算机间的通信合作,把每个计算机的功能划分成明确的层次,规定 ...查看


  • 嵌入式系统课程设计
  • 湖南文理学院 课程设计报告 课程名称: 嵌入式系统课程设计 专业班级: 通信工程11101班 11号 学生姓名: 陈 强 指导教师: 杨 峰 完成时间: 2014年6月3日 报告成绩: 湖南文理学院制 嵌入式Linux 操作系统在电网继电保 ...查看


热门内容