UML成绩管理系统.docx

上传人:b****8 文档编号:28745151 上传时间:2023-07-19 格式:DOCX 页数:31 大小:696.26KB
下载 相关 举报
UML成绩管理系统.docx_第1页
第1页 / 共31页
UML成绩管理系统.docx_第2页
第2页 / 共31页
UML成绩管理系统.docx_第3页
第3页 / 共31页
UML成绩管理系统.docx_第4页
第4页 / 共31页
UML成绩管理系统.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

UML成绩管理系统.docx

《UML成绩管理系统.docx》由会员分享,可在线阅读,更多相关《UML成绩管理系统.docx(31页珍藏版)》请在冰豆网上搜索。

UML成绩管理系统.docx

UML成绩管理系统

CHAHSSHUHSTSTUTE□?

TEE討

《软件系统建模与UML》

课程设计报告

设计题目:

成绩管理系统

院系:

专业:

班级:

学号:

姓名:

指导教师:

设计地点:

开课时间:

常熟理工学院计算机科学与工程学院制

学生姓名成绩

评语:

指导教师(签名)

年月日

1.设计目的和任务2

2.开发环境2

2.1硬件环境2

2.2软件环境3

3•设计题目3

3.1题目名称3

3.2题目详细描述3

3.3功能要求3

4.相关技术及知识点4

4.1用例建模

4.2用例的定义

4.3构造用例图的步骤

4.4RUP的核心工作流

4.5概念模型

4.6概念模型作用

4.7类图

4.8类的三个层次

4.9如何建立关联

4.10系统行为

4.11图

4.12契约

4.13协作图

4.14三层结构的优势

5.面向对象分析与设计7

5.1用例图

5.2概念模型

5.3系统类

5.4契约

5.6系统类图

5.7状态图

5.8系统组件图

6.双向工程

7.总结23

8.参考资料23

成绩管理系统

1.设计目的和任务

成绩管理系统以计算机为工具,通过成绩管理所需的信息管理,把管理人员从繁琐的数拯计算处理中解脱出来,使其有有更多的精力来从事成绩管理的研究工作,从而全面提高教学质量。

1.1设计目的

要求本系统具有以下功能:

1)为每个使用系统的人员设置权限。

只有通过权限验证的人才能使用系统。

2)学生可以使用该系统查询所学课程的成绩。

3)教师使用该系统完成学生成绩的录入、修改、显示和打印。

4)管理员使用系统输入学生信息、教师信息、班级信息和课程信息。

1.2设计任务

在明确系统功能点后,按授课要求,请用面向对象分析设计的方法设计系统,参考RUP的流程,依次得出系统的参与者、用例图、概念模型、系统类并过义系统类操作的契约、协作图(请考虑三层架构的设计方式)、得出系统的类图、数据库表,对得岀的各种UML图需要进行文字描叙。

2.开发环境

1.1硬件环境

计算机。

1.2软件环境

RathionalRoseo

3.设计题目

3.1题目名称

成绩管理系统

3.2题目详细描述

成绩管理系统是一个基于成绩査询的系统,不同类型的用户任系统中有不同的权限。

主要有三种用户:

学生:

可以查询成绩。

教师:

主要负责成绩的录入和查询。

管理员:

主要负责将成绩信息增加,修改,删除,并导入数据库。

3.3功能要求

(1)系统总体的功能需求

学生成绩管理系统主要完成对学生在校成绩信息的管理,并能够将所需要的数据按照表格形式导出。

该系统可以完成对学生

成绩的录入、査询,也可以实现学生成绩的统讣及打印等功能。

通过对系统的分析,可得岀系统功能图(如图)。

(2)系统边界分析

该系统供学校教师与学生使用,教师可以录入成绩,管理并维护数据;学生没有管理数据的权限,只能进行查询。

(3)系统功能性需求分析

对于教师(管理员),具有以下几种功能:

1学生个人信息管理

查询、添加、修改、删除、打印学生个人信息

2学生成绩管理

查询、添加、修改、删除、打印学生考试成绩

对于学生,具有以下几种功能:

查询个人信息,查询、打印、报错个人成绩

(4)系统功能性需求分析

性能需求:

开发系统性能稳泄,不应出现操作上的失误而引起的系统关闭等。

安全性需求:

不同权限的操作人员只能操作某些功能,不可越权操作人机交互需求:

操作人性化,用户比较舒适的使用系统,不可难于理解和复杂;系统观感:

要求界而颜色搭配合理,不能单调或者过于绚丽:

经济效益:

要求开发周期不能超过半年,合理管理开发过程,不得造成浪费.

4.相关技术及知识点

4.1用例建模

用例建模是需求工程的一种形式,是抽取和文档化需求的补充方法

相对于“传统”SRS方法

用例是Jacobson在而向对象的软件工程中提出的,但它实际上是独立于而向对象的。

典型用例建模方法:

找岀系统边界。

找出参与者。

找出用例(包括说明用例,创建场景)

4.2用例的定义

左义:

由系统执行的一个动作序列,并能产生可观测的结果值给特左的角色。

如:

从ATM机提取现金;

定购一个商品:

从学校选课系统注册选课:

从文本编借器中检查一个文档的拼写错误:

用例命名:

(状语+)动词+(定语+)宾语

4.3构造用例图的步骤

1.确定系统的上下文:

1.1确定参与者与它们的责任;

1.2确左用例,即确泄带有某种目的或产生特泄结果的系统行为。

2.对参与者和用例进行权衡,以便精化模型,例如拆分和合并泄义。

3.衡量用例以找出包含关系。

4.衡量用例以找出扩展关系。

5.对参与者和用例进行研究,査找是否存在泛化关系。

4.4RUP的核心工作流

(1)6个核心工程工作流:

需求工作流

分析和设计工作流

实现工作流

测试工作流

分发工作流

(2)3个核心支持工作流:

项目管理工作流

配置和变更控制工作流

环境工作流

4.5概念模型

概念模型:

展现了问题域中有意义的概念,是00A中要得到的最重要的制品。

是真实世界中各个事物的代表,而不是软件中各个构件的代表。

概念模型包括:

1、一组概念;

2、概念之间的关联:

3、概念的属性:

4、6概念模型作用

概念模型的作用:

将问题域空间分解成小的单元(概念):

帮助澄淸领域中的术语和词汇(有哪些重要术语、以及术语之间的关系如何)。

4.7类图

类图描述了系统中的类及其相互之间的各种关系。

类之间的关系表示了对象之间的通信能力。

类之间有三种关系:

一关联(包括聚合和组合)

一继承

一依赖

4.8类的三个层次

-Conceptual:

概念层。

描述问题域中的概念,不考虑或很少考虑实现上的细节_NoSoftwareo只考虑属性,在分析阶段使用。

—Specification:

说明层。

LookingintoSoftware,butonlyinterfaceofthesoftware,nottheimplementation.Onlytype,notclass。

增力D操作泄义,在设计阶段使用。

-Implementation:

实现层。

只有当使用某一具体技术进行设计时使用。

在设计阶段使用。

4.9如何建立关联

添加关联应细到什么程度

1、在建立概念模型时主要时间花费在识别问题域概念上,而不是识别关联上。

2、关联太多不仅不能有效展示概念模型,反而会使模型混乱。

3、槪念模型槪念间的关联是从纯分析角度声明有意义的概念间的联系,不需要考虑如何实现关联。

4、分析阶段得到的关联可能在设计阶段发现是无用的;设计阶段有可能发现分析阶段遗漏了有些概念间的关联。

4.10系统行为

在进行系统逻辑设计之前,必须先调查系统的行为,即将系统看作一个黑盒子,描述系统要“做什么”,而不是“怎么做”。

左义系统行为的两种手段:

系统顺序图和契约。

4.11图

展示了一个特殊的用例场景中外部参与者发起的事件以及事件的顺序。

在顺序图中,所有的系统都被当成黑盒子对待,顺序图的重点是参与者发起的跨越系统边界的事件。

建立系统顺序图要依赖于前而已经建立起来的用例描述。

4.12契约

契约是一个文档,描述系统操作对系统状态的影响,属于系统行为建模的一部分。

契约强调发生了什么而不是怎么发生。

流程:

用例描述一》系统顺序图一》系统操作一》契约

契约文本描述中强调操作的职责和后置条件

实用的契约后置条件分为以下三类:

1、实例的创建和销毁。

2、属性的修改。

3、关联的形成和破裂。

后置条件的表达要符合概念模型的语境,通过后置条件能发现槪念模型遗漏的概念、属性或关联,从而进行补充。

4.13协作图

1、每一个系统操作建立一张协作图,其中每个系统操作作为这张单独的图的起始消息。

2、若所绘岀的图太复杂,那么可以将这个大图分成若干小图。

3、使用操作契约和契约的后置条件以及用例描述文档作为起点来设计系统。

识别对象、给对象分配职责、利用GRASP和系统模式来优化设计。

4、14三层结构的优势

1.便于统一安装和维护,客户端几乎零维护。

2.表示层、应用逻借层、存储层比较独立,可以分別进行修改和升级。

3.便于组件共享和升级。

4.方便对应用逻辑单独进行升级和修改。

5.可以采用中间件技术,实现负载平衡。

6.在复杂情况下具有很髙的运行效率和稳泄性。

7.完整的事物处理能力和简单的编程接口。

8.简化应用逻辑的编程,不关心存储的细节。

5・面向对象分析与设计

5.1用例图

该系统共有三个用学生.教师与管理员,其用例模型如下图所示:

图5.1用例图

5.2概念模型

图5.2槪念模型

5.

3系统类

 

图5.3系统类

5.4系统协作图

在对系统分析与设计中,对分析阶段的模型进行扩展和细化,对分析阶段定义的类进一步扩充,通过定义新的类来处理技术方面的问题,并形成最后的UML模型。

进行详细设讣的方法是对每个用例进行动态建模,动态建模是描述系统的行为,用来反映系统对象之间的动态关系。

描述如何通过类图中的对象协作实现用例中的功能。

前面建立的类往往随着动态建模

的深入,发现存在缺陷或不够完整,需要对分析中得到的域类图进行不断修正和调整,扩展形成业务逻辑包。

同时,随着对用户界而、数据库访问等技术实现的深入建模,不断建立新的用户界面类(如窗体、控件)和数据访问类,形成用户界而包和数据访问包。

用UML的动态建模主要是建立系统交互图和行为图。

其中交互图包括顺序图和协作图;行为图则包括状态图和活动图。

关于用户界而包的类图比较简单,主要是通过界而设计,设计出窗体及控件等界而元素,并根据动态建模时需要涉及的用户界面访问动作,定义所引起的相关事件,这些方而都在窗体类中进行左义,并组成用户界面包类中进行左义。

动态建模通常采用的方法是使用UML中的顺序图描述用例,一个顺序图针对某个用例中的一个“场景”进行分析。

所谓“场景”

是指一个用例中事件发展的一条路线。

根据活动参与者的不同输入或行为,通常一个用例会有多个“场景”,也就需要分析出多个顺序图。

通过顺序图描述一个场景中各个对象之间所进行的通信,同时可以分析出系统中相应的类需要具备的操作,从而不断扩充和细化类的设讣。

如果需要进一步描述类的状态变化情况和操作流程,可以使用UML中的状态图和活动图。

图4所示的是学生成绩管理系统中用户界而包用户登录的顺序图,图中是以时间为序表示了用户界而包登录的全部过程。

图5则是学生成绩管理系统中用户界而包用户登录的协作图。

i秋师输入学生个&借思后,出迁济tq;ii

—99

:

yCSiudentlnf(rln$ertO-!

:

•III

.;LJ;

:

CQConnect..ExecuteSQl^]:

:

:

;n\]

nu.

图5.4.1教师添加学生个人信息时序图

:

:

:

•INSERTINTO

「点击修改按/'8显示僱改肓的信息

\f

:

DBConnect

图5.4.2教师修改学生个人信息协作图

5.5系统类图

根据需求建立系统的静态模型,构造系统的静态结构。

主要包括建立类图、对象图、包图、组件图和展开图等。

其中最主要的是建立系统的类图。

类图是用来描述系统中类的静态结构,它不仅左义类之间的联系,如关联、依赖、聚合等,还包括类的内部结构,如类的属性和操作等。

经过仔细分析,首先得到系统主要有以下的类:

管理员类、用户信息类、学生类、学生工作人员类、课程管理类、成绩管理类、用户管理类、课程选择类、录入类、查询类、统计类、发布信息类等。

学生成绩管理系统的主要类的属性描述为:

类"管理员”的属性有:

管理员代号、密码、备注等,以管理员代号为对象标识符。

类"用戸信息”的属性有:

用户代号、密码、信箱、备注等,以用户代号为对象标识符。

类''学生”的属性有:

学号、姓名、性別、班级号、年级号、备注等,以学号为对象标识符。

类"学生工作人员”的属性有:

教师编号、姓名、性别、单位、单位编号等。

以教师编号和单位编号为对象标识符。

类“课程管理”的属性有:

课程号、课程塔、主要内容、适用专业、先修课程、教研室编号、备注等,以课程号和教研室编号为对象标识符。

类“成绩管理”的属性有:

课程号、课程成绩、班级号、学年、学期号、课程夕I、教师名、总学时、学分、备注等,以班级号、学年、学期号和课程号为对象标识符。

类“课程选择”的属性有:

课程号、专业方向、学期号、课程类别、考试类别、考试方式、学分、总学时、讲课学时、上机学时、实验学时、课程设汁周数、课程设计上机学时、生产

实习周数、教学实习周数、毕业设计周数、备注等,以专业、学期号和课程号为对象标识符。

类“录入”的属性有:

课程划称、课程号、学年、学期号、成绩、备注等,以学年、学期号、班级号和课程需称为对象标识符。

类“查询”的属性有:

课程名称、课程号、学年、学期号、班级名称、学号、成绩、备注等,以学年、学期号、班级名称、学号和课程名称为对象标识符。

类“统计”的属性有:

课程名称、课程号、学年、学期号、班级名称、成绩、总分、平均分、

等级、备注等,以学年、学期号.班级名称、学号和课程名称为对象标识符。

类“发布信息”的属性有:

通知编号、通知标题、通知分类、通知时间、通知内容、备注等,以通知编号为对象标识符。

在分析过程中详细地列举了系统中关键的类,为了进行类分析,需要充分理解用例模型,然后确左类的属性和操作。

最后确左系统的类与类之间的关系,并最终分析出学生成绩管理的静态类图(如图上图所示)。

5.6状态图

图5.6状态图

 

5.7系统组件图

5.8部署图

图5.7系统组件图

图5.8部署图

6.双向工程

1、实体类CStudentlnfoclassCStudentlnfo

{

private:

CStringStu」D;

CStringStu_Name;

CStringStu_Sex;

CStringStu_Birthday;

CStringStu_Address;public:

CStudentlnfo();virtual^CStudentlnfof);〃获取对象属性CStringGetStu」D();

CStringGetStu_Name();

CStringGetStu_Sex();

CStringGetStu_Birthday();

CStringGetStu_Address();

〃设巻对彖属性

voidSetStu」D(CStringtemp);

voidSetStu_Name(CStringtemp);

voidSetStu_Sex(CStringtemp);

voidSetStu_Birthday(CStringtemp);

voidSetStu_Address(CStringtemp);

〃若立义了某实例化对象,以下是对其进行数据库操作

voidDB_lnsert();//将该对象实例存储至数据库

voidDB_Delete();//从数据库中删除该对象实例

intDB_Search();//从数据库中查询该对象实例

};

CStudentlnfo:

:

DBJnsert()向数据库中插入学生个人信息记录

voidCStudentlnfo:

:

DB_lnsert()

{

CDBConnectadoDB;

adoDB.OnlnitDBConnect();

CStringstrSQL;

strSQL.Format(HINSERTINTOstudentinfo(学号,姓名,性别,出生日期"家庭住址)

VALUES(,%s,/,%s,;%s7%s,/,%s,),,/

Stu」D/Stu_NamezStu__Sex/Stu_Birthday/Stu_Address);

adoDB.ExecuteSQL(strSQL);adoDB.ExitDBConnect();

}

CStudentlnfo:

:

DB_Delete()从数据库中删除学生个人信息记录

voidCStudentlnfo:

:

DB_Delete()

{

CDBConnectadoDB;

adoDB.OnlnitDBConnect();

CStringstrSQL;

strSQL.Format(uDELETEFROMstudentinfoWHERE学号=,%s,,,,Stu_ID);adoDB.ExecuteSQL(strSQL);

adoDB.ExitDBConnect();

}

CStudentlnfo:

:

DB_Search()在数据库中搜寻学生个人信息记录

intCStudentlnfo:

:

DB_Search()

{

intPosition=0;

CDBConnectadoDB;

adoDB.OnlnitDBConnect();

_RecordsetPtrppRst=adoDB.GetRecordset(,,SELECT*FROMstudentinfo");ppRst->MoveFirst();

while(!

(ppRst->rsEOF)&&Stu」D!

=(LPCTSTR)(_bstr_t)ppRst->GetCollect(H学号")&&Stu_Name!

=(LPCTSTR)(_bstr_t)ppRst->GetCollect(”姓名"))

{

Position++;

ppRst->MoveNext();

}

if(ppRst->rsEOF)

return-1;

Stu」D=(LPCTSTR)(_bstr_t)ppRst->GetCollect(u学号");Stu_Name=(LPCTSTR)(_bstr_t)ppRst・>GetCollect(”姓名");Stu_Sex=(LPCTSTR)(_bstr_t)ppRst・>GetCollectr性别”);Stu_Birthday=(LPCTSTR)(_bstr_t)ppRst->GetCollect('1出生日期”);Stii—AddrGssNLPCTSTRX—bstr—tjppRst-AGetCollectC'家庭住址冷;adoDB.ExitDBConnect();

CScoresApp*app=(CScoresApp*)AfxGetApp();app->Position=Position;

returnPosition;

}

2、实体类CStudentScores

其整体构架与CStudentlnfo类似,不再赘述。

classCStudentScores

{

public:

voidSetSco_ID(CStringtemp);

voidSetSco_Name(CStringtemp);

voidSetSco_AI(inttemp);

voidSetSco_DM(inttemp);

voidSetSco_Math(inttemp);

voidSetSco_English(inttemp);

voidSetSco_UML(inttemp);

voidSetSco_SS(inttemp);

CStringGetSco_ID();

CStringGetSco_Name();

intGetSco_AI();

intGetSco_DM();

intGetSco_Math();

intGetSco_English();

intGetSco_UML();

intGetSco_SS();

voidDB_lnsert();

voidDB_Delete();

intDB_Search(CStringtemp=,,,,);

CStudentScores();

virtual"CStudentScoresO;

private:

CStringSco_Name;

CStringScoJD;

intSco_AI;

intSco_DM;

intSco_Math;

intSco_English;

intSco_UML;

intSco_SS;

};

3、数据库类CDBConnect

用来连接数据库及对数据库进行底层操作。

voidCDBConnect:

:

OnlnitDBConnect()//用m_pConnection对象连接数#耳库

{

:

:

Colnitialize(NULL);

m_pConnection.Createlnstance(_uuidof(Connection));//OR"ADODB.Connection”

CStringConnectionStr二”Provider=SQLOLEDB・l;Password=1.23;”

"PersistSecuritylnfo=True;llserID=ytu;H

"'InitialCatalog=scores;DataSource=PC-20110930WANW\\SQLDBu;

try

{

m_pConnection・>Open(_bstr_t(ConnectionStr)/”/笃adConnectUnspecified);

}

catch(_com_errore)

{

AfxMessageBox(e.ErrorMessage());

}

}

_RecordsetPtrCDBConnect:

:

GetRecordset(CStringstrSQL)//根据传进来的SQL参数,访问数据示,返回记录集

{

try

{

if(m_pConnection==NULL)

OnlnitDBConnect();

m_pRecordset.Createlnstancef_uuidof(Recordset));

m_pRecordset->Open((_variant_t)strSQL,_variant_t((IDispatch*)m_pConnection),adOpenKeyse^adLockOptimisti^adCmdlext);

}

catch(_com_errore)

{

AfxMessageBox(e.Description());

}

returnm_pRecordset;

}

BOOLCDBConnect:

:

ExecuteSQL(CStringstrSQL)

{

try

{

if(m_pConnection==NULL)

OnlnitDBConnect();m_pConnection->Execute(_bstr_t(strSQL)/NULL/adCmdText);returntrue;

}

catch(_com_errore)

{

AfxMessageBox(e.Description());

returnfalse;

}

}

voidCDBConnect:

:

ExitDBConnect()

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1