350
社区成员
发帖
与我相关
我的任务
分享软件项目管理实验一
小组成员:龙淼 武凡棨
第1章 关于上学期软件工程作业管理系统的总结和期待
通过这次项目经历,让我明白小组成员之间的共同协作和遇到困难后的团队应变力是多人项目开发中常重要的东西。项目开发并不是每个成员都需要具备过硬的技术能力。项目的开发过程尤为艰难,但是开发完成后对于项目的测试与维护是一个更大的考验。同时通过这次项目经历,我们也现了自己的许多不足之处,且期待看到改变和成长后的自己。
第2章 系统开发技术的介绍
Visual Studio是一个可视化编译环境,它为开发者提供了很大的便利,从编写源代码到编译链接,从调试到最终发布,可以通过预设的菜单及选项很方便的完成。
Visual Studio .NET是为建立.NET Framework应用而设置的集成开发环境(IDE),它在.NET Framework和公共语言规范CLS(Common Language SPecification)基础上可运行VB、C++、C#、Jscript、J#等多种语言。它的体系结构如下:
图2-1Visio Studio .NET的结构
其中CLR公共语言运行时的结构如下:
图2-2CLR的结构
HTML全称为Hyper Text Markup Language,是一种超文本标记语言或超文本链接语言,被用来制作万维网页面的简单标记语言,计算机通过他来完成互联网的信息交流,借助浏览器在万维网中信息传递,是一种十分通用的标准语言。
在目前,它在网络上被广泛应用,是大众普遍接受的一种通用制作网页的语言。HTML主要用于制作静态页面,HTML命令可以说明图形信息、表格信息、文字信息、链接信息等。HTML作为制作系统最基础的语言,它主要由头部(head)和主体(body)组成,头部可以加标题,展示浏览器所需信息,主体则是包含网页显示的内容。作为最基础的语言,在HTML文件中可以插入ASP.NET语言形成ASP.NET文件,也可以插入JAVAScript语言形成不同风格的功能特效[5] [6]。
ASP.NET是一种动态网页技术,它开发的是Web应用程序,可以和数据库以及其他程序进行交互,是一种快捷的动态服务器页面开发工具。另外,ASP.NET的代码和页面分离,大大提高了代码的可读性,这样使得功能的扩展更加容易。
本课题将采用ASP.NET的三层架构,三层架构模型如下:
图2-4三层架构
表示层用来和用户交互,接受用户的请求,并且将服务器的处理结果展示给用户。
业务逻辑层位于表示层和数据访问层之间,它在两者之间传递数据,按功能需求调用数据访问层中的方法,并向客户展示数据和信息。
数据访问层使用了一个强类型的DataSet,通过ADO.NET操纵数据,不涉及具体业务,它为业务逻辑层提供数据服务,如存储数据操作结果、返回数据检索结果等。
第3章 系统分析
根据调查得知用户的需求,从而对系统的功能进行分析,系统应该包括了系统用户管理、教师信息管理、学生信息管理、班级信息管理、课程信息管理等功能模块,其中以作业发布、作业上交模块最为重要。
表3-1 功能需求列表
|
编号 |
功能名称 |
功能描述 |
输入内容 |
输出内容 |
|
|
用户登录 |
保证用户通过身份验证进入系统进行操作 |
用户名、密码 |
用户登录是否成功和用户登录状态 |
|
|
发布作业信息 |
管理员发布作业信息 |
作业的相关信息 |
作业信息列表 |
|
|
编辑作业信息 |
管理员修改作业信息 |
作业相关信息 |
是否编辑成功 |
|
|
删除作业信息 |
管理员删除作业信息 |
作业信息 |
作业信息删除成功或失败 |
|
|
修改个人信息 |
用户可以根据自己当前的情况修改个人的信息 |
要修改的信息 |
提示修改的结果 |
|
|
添加作业上交记录 |
用户添加作业上交记录 |
作业上交记录的相关信息 |
作业上交记录列表 |
|
|
编辑作业上交记录 |
用户修改作业上交记录信息 |
作业上交记录相关信息 |
是否编辑成功 |
|
|
删除作业上交记录 |
用户删除作业上交记录 |
作业上交记录信息 |
作业上交记录删除成功或失败 |
|
|
作业上交审核 |
管理员给用户上交的作业进行审核 |
作业上交审核信息 |
作业上交审核是否通过 |
|
|
添加课程信息 |
管理员添加课程信息 |
课程的相关信息 |
课程信息列表 |
|
|
编辑课程信息 |
管理员修改课程信息 |
课程相关信息 |
是否编辑成功 |
|
|
删除课程信息 |
管理员删除课程信息 |
课程信息 |
课程信息删除成功或失败 |
|
|
添加班级信息 |
管理员添加班级信息 |
班级的相关信息 |
班级信息列表 |
|
|
编辑班级信息 |
管理员修改班级信息 |
班级相关信息 |
是否编辑成功 |
|
|
删除班级信息 |
管理员删除班级信息 |
班级信息 |
班级信息删除成功或失败 |
3.2功能需求分析
不管是超级管理员还是普通管理员都需要管理系统用户,包括普通管理员的添加、删除、修改、查询,修改管理员的登录密码,新添加的管理员用户可以登录系统。管理员可以管理系统的其他普通用户的账号,包括录入新用户,删除现有的普通用户,修改现有的普通用户的信息,并可以通过用户名和姓名等关键字搜索普通用户,打印用户列表页面,导出用户列表至excel中。
管理员需求图:
个人资料管理:由普通用户使用,普通用户登录系统后,可以修改个人原始信息,如修改电话号码、邮箱等,用户的用户名是无法修改的。教师录入作业信息,跳转至添作业页面,填写作业信息,提交后,作业信息存储数据库的作业信息表中,包括作业编号 课程名 工号 发布教师 班级 作业内容 发布日期 年份 学期 添加时间等信息。
教师需求图:
上交作业信息管理包括上交作业信息录入、上交作业信息修改、上交作业信息删除,在数据库中设计并建立上交作业信息表,学生添加上交作业信息,即往数据表中插入一条数据,删除上交作业信息,则在数据库删除一条数据,修改上交作业信息,则修改数据库的数据。
学生需求图:
第4章 系统设计
根据前面的各项设计分析,按照系统开发的基本理念对系统进行分解,从模块上主要可分为用户模块和管理员模块。
用户模块只要是让普通用户使用,包括教师资料管理、作业发布管理、学生作业管理、学生资料管理、作业查询、作业上交,管理员模块只要是让管理员使用,包括系统用户管理(系统用户录入、删除、修改、登录密码修改)、教师信息管理(教师信息录入、删除、修改)、学生信息管理(学生信息录入、删除、修改)、班级信息管理(班级信息录入、删除、修改)、课程信息管理(课程信息录入、删除、修改),可以对数据进行添加、删除、修改及查询等操作。
系统总体功能结构图如下图所示。
图4-1系统功能结构图
物理网络拓扑图定义了终端设备与网络设备以及系统之间的连接方式。新冠疫苗接种全过程管理系统的网络拓扑图如图4.1所示:
图4.1 系统物理网络结构图
系统的逻辑结构规定了系统由哪些逻辑元素组成以及这些逻辑元素之间的关系。逻辑元素一般指某种级别的功能模块,包括我们熟悉的逻辑层,以及子系统和模块。新冠疫苗接种全过程管理系统的逻辑结构图如图4.2所示:
图4.2 系统逻辑功能结构图
本研究在系统上采用:
1、Visual studio 2022 x64
2、sqlserver 2019
3、SQL Server Business Intelligence Development Studio
3、HTML/CSS
图4.2中,“①”过程表示用户权限的后端控制,后端服务通过调用数据库内的登录用户所对应的身份加以判断,跳转至对应的页面。
“②”过程表示通过定义好的sqlcmdtest1.cs中的hsggetdata类传入sql查询语言,达到对数据库进行操作以及从数据库中获取对应json格式数据的目的。
“③”表示数据访问层使用了一个强类型的DataSet,通过ADO.NET操纵数据,实现对数据的增、删、改、查的操作。
“④”过程表示前后端通过发送Http请求及响应的方式实现前后端数据交互,前端通过由HTTP.SYS和ISAPI传入后端,调用基础信息管理、课程管理、作业管理、用户信息管理等模块的接口,获取数据,用以实现页面中的功能。
“⑤”过程表示前端为不同权限用户显示对应的模块和操作,根据权限展示页面内容及功能,保护系统的安全性。
系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和验证码,然后对登录进来的用户判断身份信息,判断是管理员用户还是普通用户。系统用户管理:不管是超级管理员还是普通管理员都需要管理系统用户,包括普通管理员的添加、删除、修改、查询,修改管理员的登录密码,新添加的管理员用户可以登录系统。普通用户管理:管理员可以管理系统的其他普通用户的账号,包括录入新用户,删除现有的普通用户,修改现有的普通用户的信息,并可以通过用户名和姓名等关键字搜索普通用户,打印用户列表页面,导出用户列表至excel中。
下图位系统总模块图:
图4.3.1 系统功能模块图
下图是教师系统模块图:
图4.3.2 教师功能模块图
下图是学生系统模块图:
图4.3.3 学生功能模块图
下图是管理员模块图:
图4.3.3 管理员功能模块图
系统的登录是使用该系统的第一关卡,用户在登录界面输入账号和密码后,系统判断该账号密码是否能在数据库中存在并且匹配,返回登录成功或登录失败的信息,登录成功后才能使用系统的功能。
登录流程图如下图所示。
图4.4.1登录流程图
4.4.2登录流程时序图
教师查询作业信息是在点击查询按钮的前提下操作的,当页面跳转至作业添加,教师在页面进行作业管理,通过查询数据库的作业表列出所有作业信息,每条作业对应一个删除按钮和修改按钮,当教师点击删除按钮,直接在数据库删除作业信息,并重定向当前页面,当教师选择点击修改,则进入页面,进行作业信息的修改。
作业管理流程图如下图所示。
图5-12 作业管理流程图
4.4.3作业管理时序图
管理员和老师管理班级课程信息,包括班级课程信息增加,班级课程信息删除,班级课程信息更新,对应数据库的班级课程信息表,增加班级课程信息,要对名称等属性进行录入。
课程管理流程图如下图所示。
图5-9课程管理流程图
4.4.4课程信息时序图
建立数据库之前,要对系统的数据进行概念模型设计,设计实体包含哪些属性,实体和实体直接的关系是怎么样的,根据概念设计,得到下图的系统总体ER图。
图4-2系统总体ER图
在服务器上建立名为netzyglxtA4的数据库,其中包括以下表:
adminusers表:
|
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
|
1 |
ID |
Int |
4 |
自增编号 |
10 |
主键 |
|
2 |
username |
VarChar |
50 |
是 |
255 |
用户名 |
|
3 |
pwd |
VarChar |
50 |
是 |
255 |
用户密码 |
|
4 |
cx |
VarChar |
50 |
是 |
255 |
管理员权限 |
|
5 |
addtime |
DateTime |
8 |
是 |
23 |
添加时间 |
banjixinxi表:
|
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
|
1 |
ID |
Int |
4 |
自增编号 |
10 |
主键 |
|
2 |
banji |
VarChar |
300 |
是 |
255 |
班级名称 |
|
3 |
addtime |
DateTime |
8 |
是 |
23 |
|
jiaoshixinxi表:
|
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
|
1 |
ID |
Int |
4 |
自增编号 |
10 |
主键 |
|
2 |
jiaoshibianhao |
VarChar |
50 |
否 |
255 |
教师教工号 |
|
3 |
mima |
VarChar |
50 |
否 |
255 |
密码 |
|
4 |
jiaoshixingming |
VarChar |
50 |
否 |
255 |
教师姓名 |
|
5 |
xingbie |
VarChar |
50 |
是 |
255 |
性别 |
|
6 |
zhicheng |
VarChar |
50 |
是 |
255 |
教师职称 |
|
7 |
shouji |
VarChar |
50 |
是 |
255 |
手机号 |
|
8 |
youxiang |
VarChar |
50 |
是 |
255 |
邮箱 |
|
9 |
beizhu |
VarChar |
500 |
是 |
255 |
备注 |
|
10 |
addtime |
DateTime |
8 |
是 |
23 |
|
kechengxinxi表:
|
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
|
1 |
ID |
Int |
4 |
自增编号 |
10 |
主键 |
|
2 |
kechengbianhao |
VarChar |
50 |
否 |
255 |
课程编号 |
|
3 |
kechengmingcheng |
VarChar |
50 |
否 |
255 |
课程名称 |
|
4 |
nianji |
VarChar |
50 |
是 |
255 |
所属年级 |
|
5 |
xueqi |
VarChar |
50 |
是 |
255 |
第几学期(第一学期、第二学期) |
|
6 |
banji |
VarChar |
50 |
否 |
255 |
课程对应班级 |
|
7 |
renkelaoshi |
VarChar |
50 |
是 |
255 |
任课老师 |
|
8 |
kechengjieshao |
VarChar |
500 |
是 |
255 |
课程介绍 |
|
9 |
addtime |
DateTime |
8 |
是 |
23 |
|
xueshengxinxi表:
|
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
|
1 |
ID |
Int |
4 |
自增编号 |
10 |
主键 |
|
2 |
xuehao |
VarChar |
50 |
是 |
255 |
学号 |
|
3 |
mima |
VarChar |
50 |
是 |
255 |
密码 |
|
4 |
xingming |
VarChar |
50 |
是 |
255 |
姓名 |
|
5 |
xingbie |
VarChar |
50 |
是 |
255 |
性别 |
|
6 |
chushengnianyue |
DateTime |
8 |
是 |
23 |
出生时间 |
|
7 |
banji |
VarChar |
50 |
是 |
255 |
所属班级 |
|
8 |
shenfenzheng |
VarChar |
300 |
是 |
255 |
身份证号 |
|
9 |
shouji |
VarChar |
50 |
是 |
255 |
手机号码 |
|
10 |
youxiang |
VarChar |
50 |
是 |
255 |
邮箱地址 |
|
12 |
addtime |
DateTime |
8 |
是 |
23 |
|
zuoyetijiao表:
|
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
|
1 |
ID |
Int |
4 |
自增编号 |
10 |
主键 |
|
2 |
banji |
VarChar |
50 |
否 |
255 |
所属班级 |
|
3 |
kechengmingcheng |
VarChar |
50 |
否 |
255 |
作业所属课程名称 |
|
4 |
zuoyeneirong |
VarChar |
50 |
否 |
255 |
作业内容描述 |
|
5 |
fabujiaoshi |
VarChar |
50 |
否 |
255 |
发布作业的教师 |
|
6 |
shangchuanzuoye |
VarChar |
50 |
否 |
255 |
作业文档的绝对路径 |
|
7 |
chengji |
VarChar |
50 |
是 |
255 |
作业的成绩 |
|
8 |
xuehao |
VarChar |
50 |
否 |
255 |
提交作业学生的学号 |
|
9 |
addtime |
DateTime |
8 |
是 |
23 |
|
zuoyexinxi表:
|
序号 |
字段名称 |
字段类型 |
大小 |
允许为空 |
最大长度 |
备注 |
|
1 |
ID |
Int |
4 |
自增编号 |
10 |
主键 |
|
2 |
banji |
VarChar |
50 |
否 |
255 |
所属班级 |
|
3 |
kechengmingcheng |
VarChar |
50 |
否 |
255 |
作业所属课程名称 |
|
4 |
zuoyeneirong |
VarChar |
300 |
否 |
255 |
作业内容描述 |
|
5 |
zuoyewendang |
VarChar |
50 |
否 |
255 |
作业文档的绝对路径 |
|
6 |
wanchengshijian |
DateTime |
8 |
是 |
23 |
完成作业最后时间 |
|
7 |
fabujiaoshi |
VarChar |
50 |
否 |
255 |
发布作业的教师 |
|
8 |
addtime |
DateTime |
8 |
是 |
23 |
|
本节在SQL Server2012中利用SQL语句和图形界面相结合的方法建立各个表并设置其主外键联系,并在项目中对数据库的连接进行详细设计。
如果将数据库的连接字符串写在cs文件中,当数据库的用户名或密码发生改变时,项目需要重新生成,这样会耗费大量资源。比较好的解决方法是将其写在Web.config中。 Web.config中数据库连接字符串如下:
<connectionStrings>
<add name="connStr" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=newssystem;Data Source=.;User Id=sa;Password=wangcongli"/>
</connectionStrings>
另外需要建立一个数据库助手类来执行基本的数据库增删改查工作,在cs文件建立数据库连接的主要代码是:
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
SqlConnection conn = new SqlConnection(connStr);
每次执行数据库的基本操作时询问数据库的连接状态,若处于关闭状态则连接数据库:conn.Open();执行完数据库的基本增删改查工作后需要断开连接:conn.Close()。