软件复用框架的总体设计
摘要:为实现高质量开发,“代码复用”是最为行之有效的方法。而实现这种“一次编写,今后复用”思想的最好方法就是设计复用框架。文章就如何设计复用框架,从概要性架构设计到实际架构设计,不断区分不变部分和可变部分,最终归纳出能够复用的组件库、界面、设计思路,使该框架具备模块化、可重用性、可扩展性、简单性和可维护性等五个特性。
关键词:复用框架;可扩展点;框架技术;模型规划中图分类号:TP311.52 文献标识码:A 文章编号:1673-1131(2015).
1 复用框架的概要性架构设计
根据应用程序开发的三层设计原理,最外层是交互层,用于程序与用户的交互。中间层是业务逻辑层,开发人员集中在这一层编写与业务相关的代码。最下层是数据访问层,用于程序与数据库的交互。目前,这样的三层设计在各类程序的开发中被广泛应用。值得注意的是,围绕许多特定应用,这些应用程序的开发之间存在高度的相似性。例如,安全管理在各类程序中都是必要组件。因此,为实现复用框架的设计思路,本文将三层设计中针对通用功能的部分沉淀为通用层。其概要性架构如图 1 所示,总共分五层,由下层支持上层,分别是 DB 数据库层、通用层、Dal 层、Model 层、UI表现层。
图 1 复用框架的概念性架构分层
其中,通用层包含了大量通用的应用组件,在复用框架中是一个典型的可扩展点。随着开发经验的不断积累,通用层将会更为庞大,逐渐转化成系统的不变部分。相比之下,UI 表现层是所有层中最不稳定的变化点。为满足业务需求,开发人员将在该层投入大量精力。因此,对 UI 表现层的设计必须更进一步。
2 针对 UI 表现层的实际架构设计
从最不稳定的 UI 表现层中可进一步识别出不变部分、可变部分、可扩展部分。并对不变部分进行固化,对可变部分进行标注,对可扩展部分做好事先接口。根据这个思路,将 UI 表现层划分成三部分,分别是登录界面、内容界面和公共服务,如图 2 所示。 其中,登录页面是所有系统的必经页面,属于不变部分。
公共服务是对整个内容页面的支持,包括所有样式、脚本、图片、皮肤、配置、Web 控件和常用方法,亦属于不变部分。此处,最重要的是内容页面,所有业务操作均在该页实现。该页面可根据业务的不同呈现不同的内容。为区分不变部分和可变部分,采用 FrameSet 和 IFrame 等技术将页面进一步划分为五个区域,并在统一的框架页面 index.html 显示,其区域布局如表 1。
表 1 内容页面布局
其中,操作区域是业务体系的核心,随系统业务需求的不同而不同,是典型的变化点。相比之下,其他区域属于不变部分。因此,操作区域中少量的通用模块(如安全模块)和其他区域等不变部分可沉淀为半成品框架。这样,每次全新开发都等价于基于半成品框架进行的二次开发,开发人员只需要将焦点聚集于操作区域范畴内的可变部分即可。
3 可变部分的模型规划
UI 表现层的内容页面中的操作区域与具体业务相关,对该部分的设计等同于对具体业务的分析。为使其符合复用框架的构想,需进一步对具体业务情况分门别类,以便从中发现共性和特性,然后将共性部分固化下来,即将具体业务大体划分为基础和特定两大类。其中,基础类针对共性(常规情况) 特定类是基础类的综合,针对特性(特定情况)。
基础类以具备学生管理、课程管理和选课管理的学生选课系统为例。学生管理或课程管理指对学生或课程实施增删改查、搜索。选课管理与前两者不同,强调学生与课程的关联关系。就抽象层面而言,前者是强调业务独立性的单一对象模型,后者是强调业务之间关联性的关联对象模型。
至于特定类,目前只支持工作流模型和安全模型。以安全模型为例,基本功能为用户管理、角色管理、权限管理、用户角色管理、角色权限管理。其中,用户管理、角色管理、权限管理属于单一对象模型。用户角色管理、角色权限管理属于关联对象模型。这典型是基础类型的综合。但因安全模型在任何系统中均通用,故将其进一步封装成比单一模型和关联模型粒度更大的通用模块。
4 不变与可变的总结
综上所述,UI 表现层是最易变化的概要性架构层,该 层的操作区域直接与具体业务相关。故进一步将该区域区分为基础类和特定类。其中,基础类包括单一对象模型、关联对象模型,在类设计、数据库设计、界面设计三方面均可固化,以便实现复用。特定类是基础类的综合应用,虽然目前只支持工作流模型、安全模型,但它会随着业务逐渐扩展。这样,便能在较大程度上提高软件开发效率,降低潜在风险。
参考文献:
[1] 张涌, 王渊峰, 钱乐秋. 一个集成式的软件构件描述框架[J].计算机学报,2002(5)
作者简介:鲁震霆(1982-),男,江西南昌人,硕士,讲师,研究方向为计算机科学与技术;曾琪(1983-),女,江西南昌人,硕士,讲师,研究方向为计算机应用。