序言
在正式阐述之前,首先阐述一下本文的基础,本文所用的相关知识基本上都来自于软件工程“需求分析”与“概念原型建模”的知识点。其次,本次分析的目标是工程实践中我的选题:数据可视化学生成绩分析系统。
一 相关原理简介
1.需求分析
需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。
需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,确认后形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。此外,软件的一些非功能性需求(如软件性能、可靠性、响应时间、可扩展性等),软件设计的约束条件,运行时与其他软件的关系等也是软件需求分析的目标。
2. 用例建模
用例是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模。用例方法被综合到UML规范之中,成为一种标准化的需求表述体系。用例的使用在RUP中被推崇备至,整个RUP流程都被称作是"用例驱动"的,各种类型的开发活动包括项目管理、分析设计、测试、实现等都是以系统用例为主要输入工件,用例模型奠定了整个系统软件开发的基础。
3.业务领域建模
业务领域模型是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。
4.数据建模
数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库。 将经过系统分析后抽象出来的概念模型转化为物理模型后,在visio或erwin等工具建立数据库实体以及各实体之间关系的过程(实体一般是表)。
在软件工程中,数据建模是运用正式的数据建模技术,建立信息系统的数据模型的过程。
二 工程实践简介
我的工程实践课题是一个数据可视化学生成绩分析系统。具体要求是:建立一个系统,这个系统采用经典架构,具有一定的安全性、稳定性。在具体功能上,要实现对于成绩最基本的管理功能,包括录入、查看、修改等。此外最重要的一点是,该系统被期望能够根据现有各科成绩的离散情况,依比例完成数据转换,使得各类数据的离散值均匀,并可以根据不同类别对数据进行统计分析。最后,系统还应当能对大数据进行分析并推导出有预测性的结论。
三 需求分析
根据工程实践的简介与要求,可以看见,本系统的需求分以下几个方面:
1. 总体需求
根据指导老师的要求,不考虑平时我使用较为频繁的B/S架构,转而使用经典的C/S架构,如下图所示:
本系统较为庞大,需要较高的安全性与可靠性,且需要达成信息数据规范化、人机交互便捷化以及系统开销合理化。
2.业务需求
考虑到系统的使用需求及面向对象,特将用户分为三类:老师、学生和系统管理员。
①对于系统管理员而言,本系统需要他进行管理和维护,包括学生及教师信息维护、成绩信息维护及向一般用户发送通知等;
②对于老师而言,本系统主要用于录入成绩、分析课程考试情况、预测相关结果等;
③对于学生而言,本系统主要用于查看考试成绩、分析自身学习情况等。
四 进行用例建模
根据前面需求分析的结果,结合课上所学知识,不难发现本系统中存在三个用例:系统管理员用例、教师用例以及学生用例。他们都满足了用例的基本要素,即:它是业务过程由某个参与者触发开始,为参与者提供了服务之后终止于某个参与者。
1.系统管理员用例
系统管理员可以使用如下功能:
(1) 登陆(管理员账户不需注册,为保证安全性也不能注册)
(2) 学生信息管理
(3) 教师信息管理
(4) 成绩数据管理
(5) 通知功能
以上,我们可以画出系统管理员的用例图:
2. 教师用例
教师可以使用如下功能:
(1) 登陆
(2) 注册
(3) 成绩管理
(4) 学科成绩分析
(5) 查看通知与操作信息
以上,我们可以画出教师的用例图:
3. 学生用例
学生可以使用如下功能:
(1) 登陆
(2) 注册
(3) 成绩查询
(4) 学习报告
(5) 查看通知与操作信息
以上,我们可以画出学生的用例图:
五 进行业务领域建模
接下来进行业务领域建模的操作。首先我们根据前面的操作来考虑模型中应该有几个类。很明显,系统管理员自成一类,教师、学生的账号分别是不同类;为了顺利进行消息通知也需要一个消息类;教师与学生的信息分两类存储;最后也是最重要的,成绩信息也需要独立一类来表征。
由上可知,一共要七个类。这七个类的关系是:
①管理员管理教师、学生的账号与信息,同时可以发送通知到目标账号;
②教师与学生都可以以不同的方法访问成绩类,但教师可以进行修改,学生不能;
③学生与教师都可以查看自己收到的通知,也可以更改自己的账号密码和个人信息。
进一步分析,确定七个类的属性与方法,绘制出这个系统的UML类图如下:
六 进行数据建模
在这一步里,我们采用使用十分广泛的E-R图进行数据建模。根据用例建模与业务领域建模,我们已经清晰的分析出了系统中存在哪些数据、这些数据有什么作用、它们之间的关系如何。接下来,就通过图表的形式详细展示出数据库中这些不同类型信息资源的关系。
以下是结合上面的推导过程绘制出的E-R图:
故而,我在数据库中设计了如下几张表:管理员账户表、教师账户表、学生账户表、成绩表、通知表、学生资料表和教师资料表。通过这些表来存放数据,从而完成预期的任务。
(1)管理员账户表
|
中文名称 |
字段名称 |
类型 |
长度 |
是否允许为空 |
|
账号 |
Mcount |
varchar |
20 |
主键,非空 |
|
密码 |
Mpwd |
varchar |
15 |
可空 |
|
密保问题 |
Mquestion |
varchar |
30 |
可空 |
(2)教师账户表
|
中文名称 |
字段名称 |
类型 |
长度 |
是否允许为空 |
|
账号 |
Tcount |
varchar |
20 |
主键,非空 |
|
密码 |
Tpwd |
varchar |
15 |
可空 |
|
密保问题 |
Tquestion |
varchar |
30 |
可空 |
|
工号 |
Tnum |
varchar |
10 |
可空 |
(3)学生账户表
|
中文名称 |
字段名称 |
类型 |
长度 |
是否允许为空 |
|
账号 |
Scount |
varchar |
20 |
主键,非空 |
|
密码 |
Spwd |
varchar |
15 |
可空 |
|
密保问题 |
Squestion |
varchar |
30 |
可空 |
|
学号 |
Snum |
varchar |
10 |
可空 |
(4)成绩表
|
中文名称 |
字段名称 |
类型 |
长度 |
是否允许为空 |
|
学期 |
Sem |
varchar |
20 |
联合主键,非空 |
|
课程号 |
C\'no |
varchar |
15 |
联合主键,非空 |
|
课程名 |
Course |
varchar |
30 |
可空 |
|
授课老师 |
Teacher |
varchar |
10 |
可空 |
|
学号 |
Snum |
varchar |
10 |
可空 |
|
分数 |
Score |
double |
20 |
可空 |
|
备注 |
Extra |
varchar |
20 |
可空 |
(5)通知表
|
中文名称 |
字段名称 |
类型 |
长度 |
是否允许为空 |
|
编号 |
ID |
Int |
10 |
主键,非空 |
|
种类 |
Type |
varchar |
15 |
可空 |
|
内容 |
Infor |
varchar |
30 |
可空 |
|
接收者 |
Reciever |
varchar |
10 |
可空 |
(6)学生资料表
|
中文名称 |
字段名称 |
类型 |
长度 |
是否允许为空 |
|
学号 |
Snum |
varchar |
20 |
主键,非空 |
|
姓名 |
Sname |
varchar |
15 |
可空 |
|
性别 |
Ssex |
varchar |
30 |
可空 |
|
班级 |
Sclass |
varchar |
10 |
可空 |
|
状态 |
Ssitu |
varchar |
10 |
可空 |
(7)教师资料表
|
中文名称 |
字段名称 |
类型 |
长度 |
是否允许为空 |
|
工号 |
Tnum |
varchar |
20 |
主键,非空 |
|
姓名 |
Tname |
varchar |
15 |
可空 |
|
性别 |
Tsex |
varchar |
30 |
可空 |
|
部门 |
Tdepart |
varchar |
10 |
可空 |
|
职称 |
Tjob |
varchar |
10 |
可空 |
七 概念原型总结
程序=算法+数据结构,这个规约我们并不陌生,早在刚开始接触计算机专业时就已经理解。那么概念原型是什么呢?类比程序的“等式”,我们可以分析出,概念原型=用例+数据模型,这样一来这一概念就显得有尤为清晰了。
根据以上建模,可以总结出整个数据可视化学生成绩分析系统的概念原型是这样一个情况:
“1=3+7”
也就是说,本概念原型包含:
三个用例:系统管理员、教师、学生;
七个数据类:Manager、Grade、Teacher、Student、TData、SData及Information。
八 概念原型工作过程
接下来以不同的用户身份说明概念原型工作过程:
①管理员登陆之后,可以管理各类账号,包括添加、移除等操作;也可以对成绩类进行管理,如多开一门课、安排一次考试等;还可以管理信息,如调整教师职位、改变学生状态;
②教师登陆之后,可以更改自己的密码(要回答密保问题)、可以录入最近的考试成绩,还可以对成绩进行分析,看看教学情况是否理想,并预测下一次的考试结果;
③学生登陆之后可以看看系统通知,了解一下最新的成绩动态,可以按单科或总学年查看自己的成绩;若对自己的成绩不满意,可以查看经由系统分析后得出的见解,从而更好地鼓励自己学习。
尾声
写到这里,这篇博文也差不多该结束了,通过此次探究,进一步掌握了软件工程的相关方法,这对提升个人能力也大有裨益。