1《软件开发与项目管理》课程案例——教学支持系统设计与开发一、项目简介(一)项目背景随着信息技术的日益发展,越来越多的人们认识到信息化对于日常工作的重要性。在教育部门,教学工作的信息化也已经成为必然趋势。教学信息化主要是指在教育领域全面地发展和运用现代信息技术,使之渗透到教学内容、教学方法、教学手段、教学组织形式以及教学过程的各个具体环节之中,从而极大地提高教学工作的效率和教育教学的水平。教学支持系统是运用信息化手段来实现教学过程中的各项管理业务。教学支持的核心部分是对教学对象的教学问题进行快速反馈,主要包括:教学支持、授课查询、授课任务管理、权限管理等。(二)项目功能教学支持系统主要为教学部门解决课程教学日常办公和管理的需求,协助教务管理员和教师进行课程教学管理和教学资料维护、下载,提高管理效率,降低运作成本。通过该系统,院校的教学负责人员能实现对课程和上课讲师的动态管理;支持人员能随时了解讲师授课情况;院校授课讲师能随时下载教学资料等。该系统的总体功能如表1所示。本案例选取“教学支持模块”的子功能“课程信息维护”模块进行设计。表1系统总体功能功能模块子功能功能细化功能类别教学支持课程信息维护录入课程信息教学支持修改课程信息删除课程信息查询课程信息资源信息维护录入资源信息修改资源信息删除资源信息查询资源信息授课查询授课综合查询查询授课课程授课查询查询授课资源历史授课任务查询查询历史授课单授课任务管理授课单开出开出授课单授课任务管理修改授课单删除授课单查询授课单2授课单接收接受授课单二、系统开发技术本系统主要主要采用了ASP.NET动态网页技术,MS-SQLSERVER数据库,多层架构技术。(一)ASP.NET动态网页技术ASP.NET是微软公司推出的一种用来取代ASP的动态网页技术,与ASP技术相比,最大的不同之处在于ASP.NET采用的是编译型语言,而ASP采用的是解释型语言,从而ASP.NET的速度得到了很大的提升。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NET框架。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。ASP.NET技术的简洁的设计和实施,完全面向对象、具有平台无关性且安全可靠、主要面向互联网的所有特点。此外,强大的可伸缩性和多种开发工具的支持,语言灵活,也让其具有强大的生命力。本案例中使用MicrosoftVisualStudio2008作为开发平台。(二)MS-SQLSERVER数据库MS-SQLSERVER数据库也是微软的重要产品,在数据库市场占据着很大的市场份额,以其卓越性能与高性价,还有易于开发易于布置,赢得了广大开发者的青睐。它可用来处理海量的数据,运行稳定,且速度快,并易用于网络应用,与ASP.NET技术的完美融合,是处理大型数据的首选数据库产品之一。本案例中使用MS-SQLServer2008做为数据存储平台。(三)三层架构技术在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。三个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,而是指逻辑上的三层。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。本案例采用多层架构技术,在三层架构基础上增加系统框架层和业务实体层,构成多层开发框架。三、系统需求分析3教学支持系统的子功能“课程信息维护”业务需求如下:教务管理员具有维护课程信息的权限,课程信息维护模块包含录入课程信息、修改课程信息、删除课程信息和查询课程信息。用例如图1所示:教务管理人员课程信息维护增加课程信息修改课程信息查询课程信息删除课程信息usesusesusesuses图1课程信息维护1.录入课程信息由课程信息维护人员新增一门课程的信息,主要录入的课程信息如表2所示:表2课程信息名称说明课程代码每个课程有唯一的代码课程中文名称手工输入课程的学分手工输入课程的周学时手工输入课程的总学时手工输入课程的专业类别选择输入开课部门选择输入考核方式选择输入(考查、考试)课程的性质选择输入(选修、必修、限修)课程简介该课程的一些说明2.查询课程信息课程信息维护人员选择查询方式,主要查询方式有①根据课程代码查询②根据课程名称查询③根据开课部门和课程类别查询。查询结果包括:课程代码、课程名称、学分、总学时、开课部门。3.修改课程信息课程信息维护人员先选择不同的查询方式查询要修改的课程,主要查询方式有①根据课程代码查询②根据课程名称查询③根据开课部门和课程类别查询。查询结果包括:课程代码、课程名称、学分、总学时、开课部门。点击【查看】显示该课程的详细信息。点击【修改】按钮修改课程的详细信息。课程信息维护人员输入该课程的信息后,点击【修改课程信息】按钮将新的课程信息保存到数据库中。44.删除课程信息课程信息维护人员先选择不同的查询方式查询要删除的课程,主要查询方式有①根据课程代码查询②根据课程名称查询③根据开课部门和课程类别查询。查询结果包括:课程代码、课程名称、学分、总学时、开课部门。点击【查看】显示该课程的详细信息。点击【删除】删除该课程信息。四、系统架构设计下面介绍系统架构设计,主要介绍开发架构设计,物理部署架构设计。(一)开发架构设计系统开发架构分为5个层次。1.WebUI层:WebUI层即用户表示层,是用户使用系统的接口,本系统的表现层就是用户界面在浏览器中的显示。2.业务逻辑层:主要是对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。本系统的业务逻辑层包含主要的业务逻辑代码文件。3.数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.本系统的数据访问层提供了访问数据的接口文件和数据源。4.实体层:用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用以描述业务中客观存在的对象。实体分离出来是为了更好地解耦,为了更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。5.系统框架层:通用的辅助工具类,将常用的功能进行封装,形成工具类。系统开发架构设计,如图2所示。实体层WebUI层系统框架层职工类课程类资源类授课单类菜单数据,主题样式,各类功能用户界面,主页,首页,图片文件等页面输入数据验证类配置文件读写类日志文件读写类常用工具函数类通用类库业务逻辑层各类用户功能业务实现的类文件数据访问层数据库工厂,接口,以及数据访问的实现类图2系统开发架构(二)物理部署架构设计教学支持系统的部署使用B/S体系结构,主要事务逻辑部署在应用服务器上,用户通过浏览器访问网站,减少了成本也更好的保护了数据库的安全。数据库部署在数据库服务器上。系统物理部署架构设计,5如图3。客户计算机浏览器应用服务器Web表现层业务逻辑层数据访问层业务实体层系统框架层数据库服务器数据库图3B/S系统物理架构图B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过Web浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。五、详细设计详细设计中以“课程信息维护模块”为例介绍界面设计、数据库设计和模块设计。(一)界面设计下面介绍课程信息维护模块录入课程、修改课程、删除课程和查询课程界面设计1.录入课程信息用户输入相关课程信息,点击【录入课程】录入课程信息,点击【清空输入】清空页面数据。如图4所示。6图4录入课程信息2.修改课程信息输入查询条件,查询要修改的课程并点击要对其进行操作的课程对应的【修改】按钮。如图5所示。图5修改课程信息(一)输入新的课程信息,点击【修改课程信息】修改课程信息,点击【清空输入】清空页面中的数据。如图6所示。图6修改课程信息(二)73.删除课程信息输入查询条件,查询所在删除的课程,点击该课程对就的【删除】按钮,系统提示“删除成功”。如图7所示。图7删除课程信息4.查询课程信息在左侧区输入查询条件,点击【查询】,右侧列表显示课程基本信息。如图8所示。图8查询课程信息(一)点击想要查看详细信息的课程对应的【查看】按钮显示课程信息详细,如图9所示。8图9查询课程信息(二)(二)数据库设计1.实体关系图课程信息维护模块数据库实体关系图,如图10所示。图10教学支持模块实体关系图2.业务表设计课程信息维护模块业务涉及到的数据表有课程信息表、课程性质表、学分表和专业类别表,设计如表3-6所示。表3课程信息表表名Course列名描述数据类型(精度范围)空/非空唯一约束条件CourseID课程IDnvarchar(50)否是无CourseName课程名称nvarchar(50)否否无CreditID学分IDint否否无WeekHours周学时int否否无9AllHours总学时int否否无ProfessionalCategoryID专业类别IDint否否无DepartmentID部门IDint否否无TestMethods考核方式nvarchar(50)否否无CourseNatureID课程性质IDint否否无CoursesIntroduction课程说明nvarchar(500)否否无其他说明无表4课程性质表表名CourseNature列名描述数据类型(精度范围)空/非空唯一约束条件CourseNatureID课程性质IDInt否是无CourseNatureName课程性质名nvarchar(50)否否无其他说明无表5学分表表名Credit列名描述数据类型(精度范围)空/非空唯一约束条件CreditID学分IDInt否否递增CreditValue学分nvarchar(50)否是无其他说明无表6专业类别表表名ProfessionalCategory列名描述数据类型(精度范围)空/非空唯一约束条件ProfessionalCategoryID专业类别IDInt否否递增ProfessionalCategoryName专业类别名称nvarchar(50)否是无其他说明无3.存储过程设计课程信息维护模块包含四个存储过程,创建课程信息存储过程、删除信息存储过程、修改课程信息存储过程和删除课程信息存储过程,如表7-10所示。表7创建课程信息存储过程字段名称数据类型及长度参数@CourseID课程