第7章 系统设计与实现模型
依赖注入组件
依赖注入实现了依赖配置动态选择数据访问层并注入业务逻辑层中,实 现两层之间的解耦,具体实现的基础是Abstract Factory模式,并配合 了反射机制和缓存机制。 依赖注入组件的主要工件是DataComponentFactory,它是一个反射工 厂,它可以通过反射机制加载某个指定的数据访问层,而后将其注入到 业务逻辑层中。至于具体加载哪一个,则依赖Web.config中的配置。 另外,还依赖CacheAccessor实现缓存机制,对加载过的数据访问组件 进行缓存,提高系统运行效率。
第7章 系统设计与实现模型
系统设计与实现模型
分析 VS 设计
在描述一个软件系统的时候,分析模型虽然有效地确
定了将要构建的内容,但却没有包含足够的信息来定义如 何构建系统,设计模型可以用来填补分析和实现之间的差 距。
分析 VS 设计
分析和设计是不同的阶段,但是边界比较模糊。
通常情况下,可以这么理解: 分析就是调查问题,分析模型 = 问题内容
软件系统体系结构建模--包图
实体类组件
由于业务很简单,整个系统只有一个实体类: MessageInfo
工具类组件
工具类组件里是一些可复用的工具性类,这里主要包括三个: CacheAccessor:用于缓存的存取操作。 SessionAccessor:用于Session的存取操作。 ValidateHelper:用于数据验证的相关操作,主要用在表示 层里。
BBS系统前台--包图
一个基于.NET平台的分层架构留言本小系统
主要实现了以下功能: 发布留言,浏览留言 管理员的登录、登出 管理员对留言进行审核、删除、回复
一个基于.NET平台的分层架构留言本小系统
系统总体架构: 采用三层架构:数据访问层、业务逻辑层、表示层 数据访问层使用Linq to Sql,XML,及SQL语句方式分别 实现。 业务逻辑层通过接口耦合数据访问层,全局采用Abstract Factory+反射机制+缓存机制实现依赖注入功能。
系统体系结构用来描述系统各部分的结构、接口以及它们
用于通信的机制。 系统体系结构建模首先要建立基本的模型,并把这些模型 映射到系统需要的硬件单元上。
系统体系结构概述
体系结构设计过程中的主要活动:
系统分解:将系统分解为若干个相互作用的子系统 模块分解:将子系统进一步划分为模块
控制建模:建立系统各部分间控制关系的一般模型
软件系统体系结构建模--构件图
构件图(Component Diagram)描述构件及构件之间的关系,显 示代码的结构。 在构件图中,将系统可重用的模块封装成为具有具有可替代性的物 理单元,称为构件。 构件为系统中的一个物理实现单元,包括软件代码(源代码、二进 制代码和可执行文件等)或者相应的组成部分,例如脚本或命令行 文件,还包括文档、数据库等。
构件图
构件及接口构件表示
构件图实例
构件图实例
硬件系统体系结构建模--部署图
开发得到的软件系统,必须部署在某些硬件上予以执行。
在UML中,硬件系统体系结构模型由部署图建模。
部署图的基本概念
部署图(Deployment Diagram)描述了一个系统运行
时的硬件结点,以及在这些结点上运行的软件构件将在何处
设计就是找出解决方案,设计模型 = 解决方案 软件设计是软件开发的关键步骤,直接影响软件质量。
系统设计与实现模型
软件设计阶段的任务与目标: 设计任务:将需求、分析阶段获得的模型转换为可实现 的系统。 设计阶段的主要任务: 系统体系结构设计 数据结构设计 用户界面设计 算法设计
系统体系结构概述
系统结构模型
软件系统体系结构模型——包图、构件图 硬件系统体系结构模型——部署图
ቤተ መጻሕፍቲ ባይዱ
软件系统体系结构建模--包图
为了清晰、简洁地描述一个复杂的软件系统,通常都是把 它分解成若干较小的系统(子系统)。如果需要的话,每
个较小的系统还可以分解成更小的系统。这样,就形成了
一个描述软件系统的结构层次。 在UML中,使用“包”代表子系统,使用包图描述软件的 分层结构。
数据访问层接口
数据访问层接口规定了数据访问层应该实现的方法,并作 为业务逻辑层的依赖接口。 由于整体只有一个实体——Message需要数据持久化,所 以数据访问层接口只有一个接口文件。
基于linq to sql的数据访问层
业务逻辑层
业务逻辑层实现主要的业务。这里的业务逻辑层有两个工件: AdminBusinessComponent和MessageBusinessComponent。其中 后一个主要实现各种留言的业务操作,而前一个是管理员的业务操作。 由于管理员的信息是记录在配置文件中而非持久化在数据库中,所以这 个业务工件并不需要数据访问层的支持。 即使在如此微小的系统中,业务逻辑层也不是对数据访问层简单的封装 调用,业务逻辑和数据访问是完全两个不同的概念。
物理地运行,以及它们将如何彼此通信的静态视图。
部署图的基本概念
在一个部署图中,包含了两种基本的模型元素:节点 (Node)和节点之间的连接(Connection)。在每一个模
型中仅包含一个部署图。
表示层使用 MVC实现,与业务逻辑层直接耦合。
一个基于.NET平台的分层架构留言本小系统
Web:表示层 BusinessComponent:业务逻辑组件 Entities:实体类 Factories:依赖注入组件 Interfaces:接口组件 LinqDataComponent:使用Linq to Sql实现的数据访问组件 SQLDataComponent:使用SQL实现的数据访问组件 XMLDataComponent:使用XML实现的数据访问组件 Utilities:工具组件 参考网址:/zjjs/201008033.asp