软件工程实习.docx
《软件工程实习.docx》由会员分享,可在线阅读,更多相关《软件工程实习.docx(16页珍藏版)》请在冰豆网上搜索。
软件工程实习
软件工程
项目实习报告
项目名称
毕业设计选题系统
学号:
姓名:
…
日期:
20年月日星期
第1章系统需求
(1)系统功能需求
由于学校要进行毕业设计,教师和学生进行双向选择,即学生可选择相应的毕业设计题目,教师也可选择学生。
1.管理员负责录入老师、学生信息;
2.每个同学可修改自己的基本信息.
3.教师可以增加、修改毕业设计题目及要求,每个课题只能有一个同学做;
4.教师可录取报名的学生,查看学生的详细信息如学生的基本信息。
5.学生可浏览教师的毕业设计题目及教师的简介等内容
6.学生可修改自己的个人信息(基本信息)
7.学生可以报毕业设计题目,每人限报两个,第一志愿和第二志愿。
8.每个老师根据名的学生,自己觉得选择某个学生(如果某个学生已经被其他老师录取,则该学生不能被第二个老师录取),老师选择了任何一个学生后,意味着拒绝了所有其他的同学;
9.某个同学的某个志愿被拒绝后,该同学可以重新报自己的志愿;
10.教师可查看报自己的学生人数,基本信息等;
11.每个学生可以随时登录查询自己被录取的情况;
12.管理员可对每个教师进行统计分析。
用例模型
管理员用例图:
录入信息
登录系统
统计分析
退出系统
老师用例图:
登录系统
管理毕业设计课题
查看学生信息
判定是否录取学生
给学生打分
退出
学生用例图:
登录系统
修改信息
查看,选择课题
查看教师信息
填写志愿
查看录取
退出系统
用例描述
用例描述1:
用例
录入信息
启动者
管理员
主要流程:
1:
管理者通过验证,登录到系统中;
2:
管理者进入录入信息界面,对教师和和学生的基本信息进行录入,核对和整理;
3:
录入完毕后,管理者点击保存按钮,录入成功;
4:
管理者退出系统。
用例描述2:
用例
管理毕业设计题目
启动者
教师
主要流程:
1:
老师通过验证,登录到系统;
2:
老师进入题目管理子系统,将自己的毕业设计题目上传到系统上;
3:
老师可以进入子系统对题目进行修改数据,增加,删除;
4:
对题目的数量和质量进行整理好后,点击上传保存按钮,上传完毕;
5:
老师退出系统。
用例描述3:
用例
查看,选择课题
启动者
学生
主要流程:
1:
学生通过验证,进入毕业设计选题界面,并查看了题目信息;
2:
学生找到自己感兴趣的毕业设计题目,点击“选择此题目”;
3:
网页弹出信息:
“确定选择这个题目吗?
”,提供“确定”和“取消”按钮;
4:
学生点击“确定”按钮;
5:
选题成功,网页上将学生选择的题目标记为已选题目,出现“退选”按钮;
6:
学生退出系统。
(2)非功能需求描述
安全性分析:
系统的安全性是不可忽略的一方面,本系统的合法用户是学生,老师以及管理员。
在进入系统前都要进行身份验证登录。
用户登录身份验证模块验证用户的用户名和密码,并根据不同的用户类型,跳转到相应的界面上去。
可使用性分析:
技术可使用性:
本系统仅需要一台装有office软件的计算就可以,对机器本身没有太高的要求。
对于软件技术要求,现在的程序设计语言已经非常成熟,运用java,c++等语言对系统的后台进行维护,运用前段技术,如html5,css3等技术,对网站进行制作,图形图像制作工具来制作生动活泼的网页,以及美观的图像文件。
经济可使用性:
由于本系统是为了学生选题管理使用的系统,装上该应用,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学习节约大量的人力和物力。
在经济上完全可行。
操作可使用性:
界面设计时充分考虑管理人员的习惯,使得操作简单,数据录入迅速,规范,可靠,统计准确,制表灵活,容易扩充,也无繁杂的输入过错,故能满足用户的使用要求。
可维护性要求:
本系统使用的最基本的程序设计语言,对后台的维护和管理非常方便,前端的网页的美化和粉饰,也是非常容易去维护,不会轻易的出现数据错误,出现乱码等bug,可以及时的进行完善和修改,维护性是非常好的。
第2章概要设计
(1)软件体系结构设计及描述
B/S结构是三层C/S结构与WWW网结合的产物。
表示层:
根据用户及应用的需要,将数据库信息按网页形式显示出来,也称为浏览器层。
服务层:
根据浏览器端的Internet访问接口和应用系统的运行平台,也叫应用服务器层。
数据库层:
该层运行数据库服务器,接收来自服务层的应用请求,并按标准格式或接口定义返回数据信息。
它们属于逻辑划分,并不要求表示层和应用层在物理位置上必须处于Internet两端,也不要求应用层和数据库层之间的绝对关系。
体系结构图:
表示层
业务逻辑层
数据存储层
界面外观层
界面规划层
业务接口层
业务规划层
实体层
数据访问层
数据库层
表示层的主要职责就是为用户提供信息,以及把用户的指令翻译。
界面外观层提供了与用户交互的界面。
界面规划层根据用户指令调用业务接口层相应接口。
业务逻辑层主要是对用户提交的指令及数据做校验,再加工后将数据存储到数据存储层,或将数据存储层提取后返回给表示层。
业务接口层提供给表示层指令接口,并将指令操作结果返回。
业务规划层根据用户指令和数据的不同,将该指令划分给不同的构造器处理并构造出实体
数据存储层主要指的是数据库,当然就包括了表,视图,存储过程,触发器等数据库对象。
(2)数据库设计及描述
根据毕业设计选题系统的要求,通过对整个系统功能,运行过程的分析,需要7张表来存储数据信息。
即:
管理员信息表,老师信息表,学生信息表,课题信息表,学生志愿表,用户登录信息表,,学生志愿表,志愿结果表。
管理员信息表:
管理员姓名,管理员登录号,管理员密码。
属性名称
属性代码
类型
是否主键
管理员姓名
AdminiName
Varchar2
No
管理员登录号
AdminiId
Int
Yes
管理员密码
AdminiPassword
Varchar2
No
教师信息表:
教师姓名,教师登录号,教师密码,教师性别,教师所在学院,教师职称,教师电话,教师邮箱。
属性名称
属性代码
类型
是否主键
教师姓名
T_Name
Varchar2(10)
No
教师登录号
T_Id
Int(10)
Yes
教师密码
T_password
Varchar2(20)
No
教师性别
T_sex
Char
(2)
No
教师所在学院
T_college
Varchar(14)
No
教师职称
T_rank
Varchar(10)
No
教师电话
T_phone
Varchar(15)
No
教师邮箱
T_email
Varchar(30)
No
学生信息表:
学生登录号,学生密码,学生电话,学生所在学院,学生所在班级,学生姓名,学生性别,学生邮箱。
属性名称
属性代码
类型
是否主键
学生姓名
S_Name
Varchar2(10)
No
学生登录号
S_Id
Int(10)
Yes
学生密码
S_password
Varchar2(20)
No
学生性别
S_sex
Char
(2)
No
学生所在学院
S_college
Varchar2(14)
No
学生所在班级
S_class
Varchar2(10)
No
学生电话
S_phone
Varchar2(15)
No
学生邮箱
S_email
Varchar2(30)
No
课题信息表:
课题编号,课题名称,课题类型,实现技术,课题介绍,允许人数,带课老师。
属性名称
属性代码
类型
是否主键
课题编号
Topic_Id
Int(10)
No
课题名称
Topic_Name
Varchar2(15)
Yes
课题类型
Topic_Type
Varchar2(15)
No
实现技术
Achieve
Varchar2(15)
No
课题介绍
Topic_Introduce
Varchar2(100)
No
允许人数
Numbers
Int(10)
No
带课老师
K_Teacher
Varchar2(15)
No
用户登录信息表:
登录ID,登录密码。
属性名称
属性代码
类型
是否主键
登录ID
Login_id
Varchar(15)
Yes
登录密码
Login_password
Varchar(15)
No
学生志愿表:
志愿编号,学生性别,学生学号,学生邮箱,学生院系,课题名称,学生姓名。
属性名称
属性代码
类型
是否主键
志愿编号
Ideal_Id
Int(10)
No
学生性别
S_sex
char(10)
No
学生学号
S_Id
Varchar2(15)
Yes
学生邮箱
S_Email
Varchar2(15)
No
学生院系
S_college
Varchar2(14)
No
课题名称
Topic_Name
Varchar2(15)
No
学生姓名
S_Name
Varchar2(10)
No
志愿结果表:
结果编号,志愿结果名称,对应学生姓名,学生学号,学生院系,学生电话,带课老师姓名,教师电话,志愿介绍。
属性名称
属性代码
类型
是否主键
结果编号
Result_Id
Int(10)
No
志愿结果名称
Result_Name
Varchar2(15)
No
对应学生姓名
Result_Stu
Varchar2(15)
No
学生学号
S_Id
Varchar2(15)
Yes
学生院系
S_college
Varchar2(14)
No
学生电话
S_Phone
Varchar2(15)
No
带课老师姓名
T_Name
Varchar2(15)
No
教师电话
T_Phone
Varchar2(15)
No
志愿介绍
Topic_Introduce
Varchar2(15)
No
E-R图:
用户
用户ID
登录密码
管理者
老师
学生
联系方式
添加修改
添加修改
姓名
学生
志愿结果
录取成功
结果编号
志愿结果名称
志愿介绍
带课老师姓名
带课教师电话
学号
姓名
电话
所在学院
所在班级
填报
志愿
课题名称
志愿编号
学生姓名
学生院系
学生学号
学生
专业
姓名
班级
性别
联系方式
学号
教师
选题
提交课题
课题
学生
职称
姓名
联系方式
从事专业
课题名
课题来源
课题类型
限选专业
候选人数
简介,要求,备注
学号
专业
姓名
班级
性别
联系方式
第3章详细设计
(1)类设计
实现三个主要功能的类图(非登录注册)
1.Administrator类,实现了管理者对系统信息的管理功能的定义,包括
了对教师,学生的基本信息的录入和修改的定义,还包括了对教师的统计分析的定义,体现在TeaEnter()、StuEnter()、TeaChange()、StuChange()、Analysis()等操作,如图2-8所示。
Administrator
-Studen
-Gerture
-Teacher
-counter
-currentdata
-AdminId
-AdminTel
+TeaEnter()
+StuEnter()
+TeaChange()
+StuChange()
+Analysis()
+Infor()
图2-8Administrator类
2.Student类,实现了学生的一些操作,主要包括修改个人信息,查看选题信息,在线选题这三个功能,同学在线选题,可以提交自己选的题目,一旦提交在未确认之前,可以修改选题。
具体体现在CheckSecelted(),ChangeST()等操作,如图2-9所示:
Student
-StudentTel
-StudentId
-ClassName
-SelectNo
-StudentName
-StudentSex
-StudentClass
+CheckSecelted()
+ChangeST()
+CheckText()
+CheckTime()
+ChooseOnline()
+InforStu()
+CheckIntoYear()
图2-9Student类
3.Teacher类,实现老师的一些操作,包括选题上传课题,增加课题,删除课题和修改课题的功能,还有修改一些自己的基本信息,查询选报学生的人数,和录取学生的功能等,体现在AddRecord(),ChingeTea()等操作中,如图2-10所示。
Teacher
-TeacherTel
-TeacherMajor
-TeacherName
-Text
-TeacherRank
-TextNo
+Addrecord()
+deleterecord()
+changerecord()
+changeTea()
+uploadrecord()
+CheckStuCount()
+DecideStu()
+Grade()
图2-10Teacher类
(2)系统类图
2.3.2系统的类图
如下图:
Administrator类
+Analisis()
StuInfor
Student
+ChangeStu()
+GlanceRecord()
+CheckInYear()
+CheckLUqu()
+rezhiyuan()
GradutionDemoMain
LoginClick()
TeaInfor
+StuEnter()
+Stuchan()
+Studel()
+TeaEnter()
+TeaChan()
+Teadel()
Online
+CheckTime()
+ChooseOnline()
+OutXT()
+updataRecord()
+count()
Houtai
Teacher
+ChangeTea()
Record
+UploadRe()
+DeleRe()
+AddRe()
Find
+CheckStuCount()
+Decidestu()
+Grade()
Zhiyuan
hiyuan
+ChangeZy()
+shengcZy()
1)GradutionDemoMain类:
主界面类,当中定义了管理员,老师,学生登录时所对应的主界面,主要函数为,
LoginClick()函数:
函数用来确定登录的用户和密码是否匹配,响应登录的函数。
2)Administrator类:
管理者类,当中定义了管理者的基本操作,主要函数为,
Analisis()函数:
函数用来统计分析每个教师的录取学生情况。
3)Stulnfor类:
学生主要信息类,用于管理员对学生的基本信息的录入,修改,和删除操作,主要函数为,
StuEnter()函数:
用于录入学生的基本信息。
Stuchan()函数:
修改学生的基本信息的函数。
Studel()函数:
删除一些学生的信息函数。
4)TeaInfor类:
教师主要信息类,用于管理员对教师的基本信息的录入,修改和删除操作,主要函数为,
TeaEnter()函数:
用于录入教师的基本信息。
TeaChan()函数:
修改老师基本信息的函数。
Teadel()函数:
删除一些教师的信息函数。
5)Student类:
学生类,包含了学生可以修改自己的基本信息,查看教师课题资料,检查学生是否符合条件,检查自己是否录取。
主要函数为,
ChangeStu():
用于学生修改自己信息的函数。
GlanceRecord():
学生查看老师课题资料,研究课题的函数。
CheckInYear():
检验学生是否符合选择老师课题的条件函数。
CheckLUqu():
学生检查自己是否被老师录取的函数。
Rezhiyuan():
学生录取失败后,再一次选择志愿的函数。
6)Online类:
学生在线选择课题,提交课题的类,主要函数为,
CheckTime():
检验是否这个时间段可以提交自己的课题的函数。
ChooseOnline():
在线选择并且提交课题的函数,如果选择错误,或者多选,可以取消,或减少的函数。
7)Teacher类:
教师类,包含了教师修改自己的个人信息,增加课题,减少课题,或者修改课题,查询自己的报名学生情况和决定自己的学生的类,主要函数为,
ChangeTea():
老师修改自己个人简介和信息的基本函数。
8)Record类:
老师用来上传,修改,减少课题的基本类。
主要函数为,
UploadRe():
老师用来上传自己课题函数。
AddRe():
老师增加课题要求和备注的函数。
DeleRe():
老师用来减少课题,或者减少课题的要求的函数。
9)Find类:
老师用来查看自己课题的报名学生情况,和决定录取学生的类,主要函数为,
CheckStuCount():
教师用来统计报名自己课题的学生数量和个人信息的函数。
Decidestu():
教师用来决定录取学生的函数。
Grade():
教师为学生打分的函数。
10)Zhiyuan类:
志愿类,用来统计学生的报名类别,对应的报名关系。
主要函数为,
ChangeZy():
每当一个学生报名或者修改志愿,函数就更新改变一次志愿的信息。
ShengcZy():
统计每个学生的志愿意向,汇报成一个表格的函数。
11)Houtai类:
后台运行类,用于维护系统的良好性。
主要函数有,
OutXT():
用户退出系统,对系统进行一次刷新和维护函数。
Count():
统计系统的访问量的函数。
UpdataRecord():
更新课题的剩余报名数量,数量达到,就停止报名的函数。