模块三 软件设计案例
——问卷调查系统架构设计
一、案例简介
为了解同学的所思所想,所忧所虑,提高工作的针对性、实效性来切实满足同学在成长、成才、成功过程中的内在需要,学工部门拟开发一个在线问卷调查系统。问卷调查系统采用无记名方式作答,学生只需结合自身的客观情况,选择相应的答案即可,所有题目均为单选。
本案例是“常州信息职业技术学院大学生思想状况调查问卷系统”的架构设计。
二、 案例功能
问卷调查系统包含题库管理、问卷项目管理、统计查询和学生答卷四个模块,前三个模块为教师所用,最后一个模块为学生使用。题库管理模块负责维护和编辑所有题干和题支,项目管理模块负责创建和发布每次调查试卷,统计查询模块对调查结果进行分析统计,学生答卷模块供学生在线答卷。 该案例的功能列表如表1所示。
表1 功能模块
系统角色 功能模块 题库管理 子功能 提干设计 题支设计 创建项目 教师 项目管理 选题组卷 发布试卷 结束调查 统计查询 学生 学生答卷 分析统计 在线答卷 三、架构设计
(一)物理部署架构设计
问卷调查系统数据库部署在数据库服务器上,应用程序逻辑、中间层组件和Web界面程序部署在Web服务器上。教师和学生使用PC机或便携式电脑等终端通过浏览器访问Web服务器上的应用程序。物理上使用防火墙隔离信任区和非信任区。Web服务器、数据库服务器部署在防火墙后面的信任区,客户端处于非信任区,客户端通过80端口访问Web服务器。系统物理架构视图如图1所示。
1
PC1InternetPC2Web服务器防火墙交换机便携电脑1便携电脑2图1 物理架构视图
数据库服务器
(二)开发架构设计
问卷调查系统采用多层软件架构体系。主要分为用户界面层、业务逻辑层、数据访问层和实体对象层。软件体系结构如图2所示。
1.用户界面层
用户界面层是各类用户使用系统的接口,核心模块包含三类用户界面:题库管理用户界面、项目管理用户界面、统计查询用户界面和学生答卷用户界面。各类用户界面使用Web页面构建,在构建Web用户界面时,使用ASP.NET服务器控件、ASP.NET用户自定义控件、母版页、主题和样式等技术。
2.业务逻辑层
逻辑层负责与上层的用户界面层进行交互,构成界面层的应用处理逻辑,同时调用下层的数据访问层组件实现对数据库的访问。逻辑层的组件按模块分类封装,主要有题库管理模块逻辑处理组件、项目管理模块逻辑处理组件、统计查询模块逻辑处理组件和学生答卷模块逻辑处理组件。各类组件构建于.NET Framework 3.5类库之上,使用C#语言编写。
3.数据访问层
数据访问层封装各类模块对数据库的访问组件。核心模块的数据访问层组件主要有:题库管理组件、项目管理组件、统计查询组件和学生答卷组件。三类组件调用公共组件“数据库访问助手(SQL Helper)”实现对底层数据库的访问。每类核心模块的组件均由接口、工厂类、接口实现类构成。接口声明模块业务处理方法,业务的具体实现封装在实现类(各模块的SQL DAL)中,各模块的数据访问层对象实例在各自的工厂类中创建。逻辑层调用数据访问层时,首先调用模块工厂类的静态方法创建模块对象实例,然后才使用模块对象实例的业务方法实现对数据库的访问。
4.实体对象层
实体对象层定义系统的数据结构,构建与底层数据库的数据映射关系。实体对象层服务与用户界面层、业务逻辑层和数据访问层,提供各层次之间数据交互的平台。
5.数据存储
2
系统使用Microsoft SQL Server 2008作为数据存储管理平台。系统的业务表及其存储的数据,构建数据关系的视图,以及描述简单业务逻辑的存储过程等使用Microsoft SQL Server 2008构建。
ASP.NET 2.0ASP.NET Web页面,用户自定义控件,母版页,主题和样式用户界面层题库管理界面项目管理界面统计查询界面学生答卷界面实体对象层业务逻辑组件C#逻辑处理组件业务逻辑层题库管理组件项目管理组件统计查询组件学生答卷组件调查项目,题干,题支数据访问层组件题库管理模块接口数据访问层题库管理模块工厂类题库管理模块SQL DAL项目管理模块接口项目管理模块工厂类项目管理模块SQL DAL统计查询模块接口统计查询模块工厂类统计查询模块SQL DALSQl Helper学生答卷模块接口学生答卷模块工厂类学生答卷模块SQL DAL数据存储Microsoft SQL Server 2008 图2 创建项目
(三)模块接口设计
1.题库管理模块接口
题库管理模块设计分三个层次:用户界面层、业务逻辑层和数据访问层。每个层次包含内容设计如下: 1)用户界面层:题干信息编辑界面、题支信息编辑界面; 2)业务逻辑层:题干信息编辑逻辑、题支信息编辑逻辑;
3)数据访问层:模块封装了题库管理模块工厂类、题库管理模块接口和题库管理模块实现类,由接口负责实现题库对象实例化,接口实现如图3所示。
3
题库管理接口定义题干信息编辑功能接口题支信息编辑功能接口题干信息编辑功能实现题支信息编辑功能实现题库管理接口实现
图3 题库管理模块数据访问层接口设计
2.项目管理模块接口
项目管理模块设计分三个层次:用户界面层、业务逻辑层和数据访问层。每个层次包含内容设计如下: 1)用户界面层:创建项目界面、选题组卷界面、发布试卷界面、结束调查界面; 2)业务逻辑层:创建项目逻辑、选题组卷逻辑、发布试卷逻辑、结束调查逻辑;
3)数据访问层:模块封装了项目管理模块工厂类、项目管理模块接口和项目管理模块实现类,由接口负责实现项目对象实例化,接口实现如图4所示。
项目管理接口定义创建项目功能接口选题组卷功能接口发布试卷功能接口结束调查功能接口创建项目功能实现项目管理接口实现选题组卷功能实现发布试卷功能实现结束查询功能实现
图4 项目管理模块数据访问层接口设计
3.统计查询模块接口
统计查询模块设计分三个层次:用户界面层、业务逻辑层和数据访问层。每个层次包含内容设计如下: 1)用户界面层:项目列表界面、统计分析界面; 2)业务逻辑层:项目列表逻辑、统计分析逻辑;
3)数据访问层:模块封装了统计查询管理模块工厂类、统计查询模块接口和统计查询模块实现类,接口实现如图4所示。
4
统计查询接口定义项目列表功能接口统计分析功能接口项目列表功能实现统计分析功能实现统计查询接口实现
4.学生答卷模块接口
学生答卷模块设计分三个层次:用户界面层、业务逻辑层和数据访问层。每个层次包含内容设计如下: 1)用户界面层:答卷界面; 2)业务逻辑层:答卷处理逻辑;
3)数据访问层:模块封装了学生答卷管理模块工厂类、模块接口和模块实现类。
5