软件工程实践.docx
- 文档编号:11772761
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:50
- 大小:98.95KB
软件工程实践.docx
《软件工程实践.docx》由会员分享,可在线阅读,更多相关《软件工程实践.docx(50页珍藏版)》请在冰豆网上搜索。
软件工程实践
软件工程实践
实验报告
学号:
姓名:
班级:
教师:
中国矿业大学计算机学院
实验二UML工具的使用
学生信息管理系统
一.实验目的
随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,其教学管理工作也变得相当困难和复杂。
以前这些工作都由人工完成,不仅耗费了大量的人力和物力,还会存在人为的错误。
通过计算机进行管理,学生只要网上选课并将个人选课信息输入计算机,大量统计工作可由计算机自动完成,如选课人数、所在班级等,节省了大量的人力和时间。
同时,借助选课系统,教师日常教学中的各项环节,如统计选课结果等一系列工作都可以借助计算机系统自动完成,大大提高了高校教学的信息化程度,减轻了教师负担,提高了工作效率。
二.实验要求
1.下载、安装RationalRose、StarUML等工具软件,学习软件使用;
2.绘制用例图、类图、序列图、状态图、活动图等图形针对所选系统进行模型分析和设计。
三.需求分析
3.1功能需求
本系统开发的目的,就是通过系统开发,实现学生信息管理的有关工作的计算机化,提高关键环节的处理速度和规范化,并对有关的工作进行集成和重组,通过计算机实现对学生信息的集中管理,提高选课管理工作的质量和效率。
通过对学校的选课及成绩管理工作进行实际调查,学生可以自由选择课程,可以通过此系统查看成绩学分统计,登录用户需要涉及任课教师、学生、管理员(教务工作人员)三种用户。
3.2学生需求
在学校规定的选课期间,学生通过任何一台连接因特网计算机的浏览器就能进行网上选课。
学生以用户名和密码进入选课系统。
选课系统会根据用户名和密码自动识别所在的系,然后显示出与学生有关的课程列表。
系统必须控制某一门课程在学期间只能选一次。
在学生选课时能自动进行有关逻辑判断,如:
是否选课超过了规定的门数,是否选择了不符合预修条件的课程,是否选择的课程超过此课程最大选择人数,只有符合要求的选择才能选课成功。
学生可以更改部分个人信息如密码,电话号码等;学生可以查询已修课程成绩和已选课程信息。
3.3教师需求
任课教师登录后,可以查看自己所教课程的课程表;对于同一学期内有多门课程的教师,需要选择具体课程后,才能查看已选这门课程的学生信息:
期末,教师可以上传这些学生的成绩。
3.4管理员需求
系统管理员登录后,可以对学生,教师,课程,教学班级的基本信息进行添加,修改,删除等工作。
课程安排是选课的核心,只有按照实际的教学情况安排出每个学期必修和选修的课程,才能保证选课的顺利进行。
在每学期,学生选课前,各院系管理员必须在该院系培养方案中录入本学期可以开设的课程和排课安排,对于需要预修条件的课程,需要设置好预修条件。
基础部管理员负责公共课的课程开设和排课安排。
其中排课及教学班级的安排上要保证同一个教师在同一时间只能上一门课程;同一个教室同一时间也只能开一门课程,并要设置此教学班级的最大班容量。
根据以上需求分析,系统把用户划分为3类:
管理员、教师和学生。
不同的用户在系统中的作用和权限有所不同,所需要完成的功能也不同,系统对于一个用户只允许以一种身份登录。
为了系统的保密性,任何用户必须登录后才能使用系统。
将系统需求加以总结,得出系统的需求如下:
(1)系统需要提供用户登录的用户接口。
(2)用户可以通过一台连接Internet计算机的浏览器使用系统,系统应具有友好的用户界面。
(3)系统用户类型为:
管理员、教师、学生。
(4)系统对一个用户只允许以一种身份登录。
(5)只有管理员可以维护学生、教师、课程、班级的基本信息。
(6)学生可以选课,更改部分个人信息以及选课结果查询和成绩查询。
(7)教师可以查看所教授的课程和学生信息,期末在网上录入学生成绩。
四.用例图
4.1系统用例图
该用例图中的用例分析如下:
用例名称:
学生信息的管理
基本操作流程:
1.管理员创建并分配学生用户名和密码
2.学生输入用户名和密码登录系统
3.系统验证登陆信息
4.登陆成功后学生输入个人信息
5.系统保存学生的个人信息
可选操作流程:
1a:
当新增学生或有退学者时,管理员应及时更新用户信息
2a:
输入的用户名和密码错误时登录失败
2b:
输入用户名和密码正确,成功登陆
3a:
验证通过成功登陆
用例名称:
查询成绩
基本操作流程:
1.老师登陆系统并登记学生成绩
2.学生登录系统查询成绩
3.系统检索学生的成绩信息并反馈给学生
可选操作流程:
1a:
老师登陆后发现无该学生成绩时,应确定该生是否退学
1b:
老师成功登陆后录入和删除和修改学生成绩
2a:
学生成功登陆系统后查询成绩
4.2管理员用例图
该用例图中的用例分析如下:
用例名称:
学生信息的修改
基本操作流程:
1.管理员登录系统并为学生分配用户名和密码
2.学生登录系统修改个人信息
3.系统更新学生信息
可选操作流程:
1a.学生登录系统修改信息,系统故障修改失败
2a.学生登录系统修改信息,修改成功并系统保存
4.3学生用例图
该用例图中的用例分析如下:
用例名称:
选课
基本操作流程:
1.管理员为学生分配用户名和密码
2.学生成功登陆系统并进入选课页面
3.选择课程
可选操作流程:
1a:
用户名密码不正确时,登录失败
2a:
成功登陆但不在选课时间内或超出选课权限时,选课失败进不到选课页面
2b.在选课时间内登录时,成功选课
4.4老师用例图
该用例图的用例分析如下:
用例名称:
教授学生状况的查询
基本操作流程:
1.管理员为老师分配用户名和密码
2.老师成功登录系统
3.查询教授学生的状况
可选操作流程:
1a.管理员给老师分配用户名时确保该用户存在
2a.该老师还不存在用户名时无权登陆查询
2b.老师存在用户名并且密码正确时能够成功登陆并查询学生的信息
五.类图
5.1生成代码
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class1.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS1_H)
#define_CLASS1_H
classClass1
{
};
#endif//_CLASS1_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class2.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS2_H)
#define_CLASS2_H
classClass2
{
};
#endif//_CLASS2_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class3.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS3_H)
#define_CLASS3_H
classClass3
{
};
#endif//_CLASS3_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class4.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS4_H)
#define_CLASS4_H
classClass4
{
};
#endif//_CLASS4_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class5.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS5_H)
#define_CLASS5_H
classClass5
{
};
#endif//_CLASS5_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class6.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS6_H)
#define_CLASS6_H
classClass6
{
};
#endif//_CLASS6_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class7.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS7_H)
#define_CLASS7_H
classClass7
{
};
#endif//_CLASS7_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class8.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS8_H)
#define_CLASS8_H
classClass8
{
};
#endif//_CLASS8_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class9.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS9_H)
#define_CLASS9_H
classClass9
{
};
#endif//_CLASS9_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Class10.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_CLASS10_H)
#define_CLASS10_H
classClass10
{
};
#endif//_CLASS10_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Enumeration1.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_ENUMERATION1_H)
#define_ENUMERATION1_H
enumEnumeration1
{
};
#endif//_ENUMERATION1_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
Enumeration2.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_ENUMERATION2_H)
#define_ENUMERATION2_H
enumEnumeration2
{
};
#endif//_ENUMERATION2_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
成绩.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_成绩_H)
#define_成绩_H
class成绩
{
public:
int课程号;
int课程名;
int分数;
int绩点;
};
#endif//_成绩_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
成绩.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_成绩_H)
#define_成绩_H
class成绩
{
public:
int课程号;
int课程名;
int分数;
int绩点;
};
#endif//_成绩_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
成绩.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_成绩_H)
#define_成绩_H
class成绩
{
public:
int课程号;
int课程名;
int分数;
int绩点;
};
#endif//_成绩_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
成绩.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_成绩_H)
#define_成绩_H
class成绩
{
public:
int课程号;
int课程名;
int分数;
int绩点;
};
#endif//_成绩_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
管理员.cpp
//@Date:
2012/12/23星期日
//@Author:
//
//
#include"管理员.h"
void管理员:
:
统计学生()
{
}
void管理员:
:
录入学生()
{
}
void管理员:
:
删除学生()
{
}
void管理员:
:
统计课程()
{
}
void管理员:
:
增加课程()
{
}
void管理员:
:
删除课程()
{
}
void管理员:
:
查询个人信息()
{
}
void管理员:
:
统计老师()
{
}
void管理员:
:
录入老师()
{
}
void管理员:
:
删除老师()
{
}
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
管理员.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_管理员_H)
#define_管理员_H
class管理员
{
public:
int学生信息;
int课程信息;
int个人信息;
int老师信息;
void统计学生();
void录入学生();
void删除学生();
void统计课程();
void增加课程();
void删除课程();
void查询个人信息();
void统计老师();
void录入老师();
void删除老师();
};
#endif//_管理员_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
管理员信息.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_管理员信息_H)
#define_管理员信息_H
class管理员信息
{
public:
int姓名;
int工号;
int性别;
int民族;
int籍贯;
int联系方式;
};
#endif//_管理员信息_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
课程.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_课程_H)
#define_课程_H
class课程
{
public:
int课程号;
int课程名;
int学时;
int开课学期;
int课程性质;
};
#endif//_课程_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
课程.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_课程_H)
#define_课程_H
class课程
{
public:
int课程号;
int课程名;
int学时;
int开课学期;
int课程性质;
};
#endif//_课程_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
课程.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_课程_H)
#define_课程_H
class课程
{
public:
int课程号;
int课程名;
int学时;
int开课学期;
int课程性质;
};
#endif//_课程_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
课程表.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_课程表_H)
#define_课程表_H
class课程表
{
public:
int课程号;
int课程名;
int地点;
int时间;
int任课教师;
};
#endif//_课程表_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
课程.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_课程_H)
#define_课程_H
class课程
{
public:
int课程号;
int课程名;
int学时;
int开课学期;
int课程性质;
};
#endif//_课程_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
课程表.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_课程表_H)
#define_课程表_H
class课程表
{
public:
int课程号;
int课程名;
int地点;
int时间;
int行政班级;
};
#endif//_课程表_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
老师.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
defined(_老师_H)
#define_老师_H
class老师
{
public:
int工号;
int姓名;
int院系;
int性别;
int民族;
int籍贯;
int联系方式;
};
#endif//_老师_H
//
//
//GeneratedbyStarUML(tm)C++Add-In
//
//@Project:
Untitled
//@FileName:
老师信息.h
//@Date:
2012/12/23星期日
//@Author:
//
//
#if!
de
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实践