毕业设计学生成绩管理系统软件开发设计实训报告.docx

上传人:b****8 文档编号:12118169 上传时间:2023-06-04 格式:DOCX 页数:32 大小:995.34KB
下载 相关 举报
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第1页
第1页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第2页
第2页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第3页
第3页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第4页
第4页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第5页
第5页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第6页
第6页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第7页
第7页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第8页
第8页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第9页
第9页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第10页
第10页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第11页
第11页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第12页
第12页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第13页
第13页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第14页
第14页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第15页
第15页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第16页
第16页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第17页
第17页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第18页
第18页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第19页
第19页 / 共32页
毕业设计学生成绩管理系统软件开发设计实训报告.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业设计学生成绩管理系统软件开发设计实训报告.docx

《毕业设计学生成绩管理系统软件开发设计实训报告.docx》由会员分享,可在线阅读,更多相关《毕业设计学生成绩管理系统软件开发设计实训报告.docx(32页珍藏版)》请在冰点文库上搜索。

毕业设计学生成绩管理系统软件开发设计实训报告.docx

毕业设计学生成绩管理系统软件开发设计实训报告

数学与计算机学院

实训报告

课程名称:

软件开发设计实训

课程代码:

6014409

题目:

学生成绩管理系统

年级/专业/班:

2011级软件工程

组员姓名:

组员学号:

312011080611XXX

开始时间:

2013年10月16日

完成时间:

2013年12月13日

课程设计成绩:

技术水平与实际能力(50)

说明书撰写质量(50)

总分(100)

指导学生签名:

年月日

1需求分析模型重构

1.1业务需求分析

1.1.1.背景、业务概况

《学生成绩管理系统》是学院组织开发的一个系统。

在组长的分工下,我负责管理员管理学生信息这个模块。

用户主要分两类:

管理员和学生。

管理员能够维护系统,也可对学生信息进行添加、删除、修改等操作;学生能够查询自己相关的信息。

1.1.2业务目标

通过对业务概况的了解和整理(业务目标既可以由客户提出也可以由开发方整理得出)得出该系统的业务目标如下:

BO-1:

为管理员管理学生信息提供自助化服务。

BO-2:

节省管理员的工作,提高效率。

1.1.3涉众分析

1.1.3.1涉众

涉众(stakehoder)是指与要建设系统相关的一切人和事情。

通过需求陈述分析,得出管理员管理学生信息系统的利益相关者(涉众)如图1.1以及涉众的信息如表1-2:

 

图1.1涉众分析

表1.1涉众概要信息

编号

名称

说明

期望

SH001

管理员

系统的直接操作者,能管理学生的信息以及学生的成绩

1、可以方便的进行各信息的录入。

2、可以简单的对系统进行维护。

SH002

学生

学生查询自己的信息以及对自己的个人信息进行管理

1、查询成绩简单

2、管理个人信息简单。

1.1.3.2边界

分析业务目标,得到系统边界。

系统边界的划分如图1.2所示。

图1.2边界定义

1.2非功能性需求分析

1.2.1性能(PEformance)需求

PE-1:

管理员可以对学生信息进行录入、删除、修改、查询。

PE-2:

管理员对系统进行维护

1.2.2安全性(SEcurity)需求

SE-1:

每条录入记录都需要有日志文件能够查询。

SE-2:

保证学生信息的安全性、完整性、一致性。

2业务分析模型

2.1业务主角

2.1.1学生信息管理业务主角

对于学生信息管理模块来说,管理员是直接管理学生信息的涉众,学生也可以对自己的信息进行管理。

所以通过分析,可以得到学生信息管理业务的主角。

如图2.1所示:

 

图2.1学生信息管理业务主角

2.2业务用例分析

2.2.1学生信息管理业务用例

管理员可以对学生的信息进行录入、删除、修改、查看。

所以根据学生信息管理业务分析,得到其用例如图2.3所示:

 

图2.2学生信息管理业务用例

2.3业务用例场景分析

2.3.1学生信息管理业务用例场景分析

根据业务用例对学生信息管理业务用例场景分析得到时序图如图2.3所示:

 

 

图2.3学生信息管理时序图

由时序图生产协作图如图2.4所示:

 

图2.4学生信息管理协作图

2.4业务用例实现

2.4.1学生信息管理业务用例实现

由上述学生信息管理业务用例和用例场景分析得到用例实现,如图2.5所示:

 

图2.5用例实现

2.5业务用例完整的包图

业务用例完整包图如图2.6所示:

 

图2.6完整包图

 

3概念分析模型

3.1核心业务活动图

管理员管理学生信息首先要确定好学生的入学信息及考试信息,由所选课程决定所需添加的学生,对整个模块分析得到核心业务活动图如图3.1所示:

图3.1核心业务活动图

3.2关键业务概念用例图

由核心业务分析得到关键业务,关键业务概念用例图如图3.2所示:

3.2关键业务概念用例图

3.3概念用例分析(活动图)

3.3.1管理员添加学生信息概念用例分析

管理员可以对学生信息进行录入、删除、修改、查询。

这里显示管理员录入信息的概念用例分析,如图3.3所示:

 

图3.3添加学生信息用例分析

3.3.1.1管理员添加学生信息概念用例场景分析(活动图)

管理员通过选定课程对学生信息进行添加,得到概念用例场景分析的活动图,如图3.4所示:

 

 

图3.4用例场景分析活动图

3.4概念用例实现分析

3.4.1管理员添加学生信息概念用例实现分析

 

3.4.1.1管理员添加学生信息概念用例实现分析(时序图)

管理员添加学生信息概念用例实现时序图如图3.5所示:

 

 

图3.5时序图

3.4.1.2管理员添加学生信息概念用例场景分析对象(类图)

管理员添加学生信息概念用例场景分析对象类图如图3.6所示:

 

图3.6用例场景分析对象

3.5概念用例完整的包图

根据上述概念用例分析、概念场景分析、概念用例实现得到完整包图如图3.7所示:

 

图3.7完整包图

4系统分析模型

4.1系统用户分析

对系统进行分析,首先要对系统用户进行分析,对系统用户进行分析得到如图4.1所示:

 

 

图4.1系统用户

4.2系统用例分析

分析完系统用户就要接着对系统用例进行分析。

4.2.1系统用例图

对系统用例进行分析,得到系统用例图如图4.2所示:

 

图4.2系统用例图

 

4.2.2系统用例图场景分析(活动图)

根据系统用例图分析得到用例图场景,如图4.3所示:

 

 

图4.3活动图

 

4.3系统用例实现分析

4.3.1系统用例实现用例图

根据用例场景分析得到系统用例实现图,如图4.4所示:

 

图4.4用例实现图

4.3.2用例实现场景分析(时序图)

时序图如图4.5所示:

 

图4.5时序图

 

4.4分析类

将用例实现场景中的关键对象找出并加上已知的方法得到完整的分析类图。

4.4.1实体类

得到实体类分析类图如图4.6所示:

 

图4.6实体类

4.4.2控制类

得到控制类分析类图如图4.7所示:

 

图4.7控制类

4.4.3边界类

得到边界类分析类图如图4.8所示:

 

 

图4.8边界类

 

4.4.4各系统分析模型

4.4.4.1BusinessControl层分析模型

得到BusinessControl层分析模型如图4.9所示:

 

图4.9BusinessControl层分析模型

 

4.4.4.2Entity层分析模型

得到Entity层分析模型如图4.10所示:

 

图4.10Entity层实现

4.4.4.3Window层分析模型

得到Window层分析模型如图4.11所示:

 

 

图4.11Window层实现

 

4.4.5各系统分析类图

4.4.5.1BusinessControl层分析类图

得到BusinessControl层分析类图如图4.12所示:

 

 

图4.12BusinessControl层类图

4.4.5.2Entity层分析类图

得到Entity层分析类图如图4.13所示:

 

图4.13Entity层分析类图

4.4.5.3Window层分析类图

得到Window层分析模型如图4.14所示:

 

 

图4.14Window层分析类图

4.4.6总分析类图

由上述各图得到总分析类图如图4.15所示:

 

图4.15总分析类图

4.5组件模型分析

根据上述能够实现需求的类,得到如图4.16用例组件图:

 

图4.16用例组件图

4.6系统分析完整的包图

根据对系统完整的分析得到系统分析的完整包图如图4.17所示:

 

图4.17系统分析完整包图

 

5系统设计模型

5.1软件架构/框架选择

5.1.1软件架构描述

用包图描述软件架构。

其中V采用可视窗体界面,实际上就是边界类,M实际上就是实体类,C就是前面控制类。

因此该架构显然很清晰,再加入数据库控制,得到软件架构如图5.1所示:

 

图5.1用包图描述软件架构

5.1.2软件架构包图

根据上述软件架构的描述,得到软件架构包图如图5.2所示:

 

图5.2软件架构包图

 

5.2基于架构的设计类

从之前的实验中我们得到了“录入学生信息”分析模型,并得到了相应的分析类。

进一步对这些分析类进行映射,得到设计类。

5.2.1Business设计类

将设计类图结合软件架构分析类,映射出Business层设计类,如图5.3所示:

 

图5.3Business层设计类

5.2.2Window层设计类

得到Window层设计类如图5.4所示:

 

图5.4Window层设计类

5.2.3总体设计类

对边界类、控制类进行映射得到总体设计类,如图5.5所示:

 

图5.5总体设计类

6设计类优化

6.1设计类优化结果

对设计类进行优化,得到如图6.1所示:

 

 

图6.1设计类优化

6.2采用的设计模式说明

采用的是FactoryMethod模式进行。

定义一个用于创建对象的接口,让子类决定实例化哪一个类。

FactoryMethod使一个类的实例化延迟到其子类。

7面向对象数据库分析设计

7.1概念数据模型

得到概念数据模型,如图7.1所示:

 

图7.1概念数据模型

 

7.2概念数据模型优化/调整

 

优化后得到数据模型如图7.2所示:

 

 

图7.2优化后模型

7.3物理数据模型

得到物理数据模型如图7.3所示:

 

图7.3物理数据模型

 

总结

在本次软件开发设计实训中,我与小组队友共同开发一个学生成绩管理系统,我组要负责系统管理员管理学生信息这个模块。

通过这次实训,我基本熟练地掌握了使用软件powerdesigner对软件系统进行有效的开发。

在设计管理员管理学生信息这个模块之前,我们组五个组员通过初步的讨论,确定了业务概况和业务目标,以及组员的分工。

我在设计这个模块时,根据实验指导书的知道,先对需求分析进行重构,从项目出发,进行涉众分析;从业务目标出发推导出边界定义;结合涉众以及边界寻找边界外并且直接与边界所代表的系统交互,从而寻找出业务主角;继而再找出这些业务主角的业务需求,并从中获取业务用例。

获取业务用例后,建立完整的业务模型,对业务用例编写业务用例场景,用UML中的活动图、时序图、协作图来表示业务用例场景,并书写用例描述。

再初步生成分析类图。

然后从业务用例构建概念模型,分析系统用例构建分析模型,接着推导并实现软件架构和框架、设计模型以及设计类。

再对设计类进行优化,最后用powerdesigner进行自动生成数据库。

通过此次实训,我也认识到了自己的许多不足,在实训过程中与组员沟通不足,使得该系统的需求考虑不完善。

因为该系统业务主角较少,通过小组成员讨论便能很好找出业务需求,并从中获取业务用例,所以在构建概念模型和分析系统用例构建分析模型过程中阻碍是较少的。

在实现软件架构和框架时,由于我对其概念及其实现的方法模糊,实验结果不尽人意,在与组长与组员讨论分析后,我改进系统设计模型,重新获得实验结果。

在建立设计模型与设计类优化过程中,我对数据访问层、Model层、业务逻辑层等概念理解不清,只能通过谭三老师的讲解依葫芦画瓢得出实验结果。

最后,在面向对象数据库分析设计这一块,我平时训练不多,这也看出了我对powerdesigner软件的更高层功能的不熟练精通,不过我相信通过我更多的使用该软件与软件系统开发过程,我能更好的完成软件的开发设计。

附录A部分生成的SQL语句

ifexists(select1fromsys.sysforeignkeywhererole='FK_学生信息_GENERALIZ_学生')then

altertable学生信息

deleteforeignkeyFK_学生信息_GENERALIZ_学生

endif;

dropindexifexists学生信息.Generalization_1_FK;

droptableifexists学生信息;

/*==============================================================*/

/*Table:

学生信息*/

/*==============================================================*/

createtable学生信息

);

/*==============================================================*/

/*Index:

Generalization_1_FK*/

/*==============================================================*/

createindexGeneralization_1_FKon学生信息(

);

altertable学生信息

addconstraintFK_学生信息_GENERALIZ_学生foreignkey()

references学生

onupdaterestrict

ondeleterestrict;

附录B部分生成的程序结构性代码

*Module:

SimpleApply.java

*Author:

Administrator

*Purpose:

DefinestheClassSimpleApply

***********************************************************************/

package逻辑视图.04设计模型;

importjava.util.*;

/**@pdOid5bb1d2b9-0a1c-47ed-bdb9-c61384089d0d*/

publicclassSimpleApply{

/**@pdRoleInfomigr=noname=ApplyControlassc=association2coll=java.util.Collectionimpl=java.util.HashSetmult=0..**/

publicjava.util.CollectionapplyControl;

/**@pdOidb2e39b41-6fd8-4de5-8bd7-7d600b987a55*/

publicvoidsubmit(){

//TODO:

implement

}

/**@pdOidf262ef12-7f1f-42ab-bc03-ba7df1c0fd60*/

publicintsave(){

//TODO:

implement

return0;

}

/**@pdGenerateddefaultgetter*/

publicjava.util.CollectiongetApplyControl(){

if(applyControl==null)

applyControl=newjava.util.HashSet();

returnapplyControl;

}

/**@pdGenerateddefaultiteratorgetter*/

publicjava.util.IteratorgetIteratorApplyControl(){

if(applyControl==null)

applyControl=newjava.util.HashSet();

returnapplyControl.iterator();

}

/**@pdGenerateddefaultsetter

*@paramnewApplyControl*/

publicvoidsetApplyControl(java.util.CollectionnewApplyControl){

removeAllApplyControl();

for(java.util.Iteratoriter=newApplyControl.iterator();iter.hasNext();)

addApplyControl((ApplyControl)iter.next());

}

/**@pdGenerateddefaultadd

*@paramnewApplyControl*/

publicvoidaddApplyControl(ApplyControlnewApplyControl){

if(newApplyControl==null)

return;

if(this.applyControl==null)

this.applyControl=newjava.util.HashSet();

if(!

this.applyControl.contains(newApplyControl))

this.applyControl.add(newApplyControl);

}

/**@pdGenerateddefaultremove

*@paramoldApplyControl*/

publicvoidremoveApplyControl(ApplyControloldApplyControl){

if(oldApplyControl==null)

return;

if(this.applyControl!

=null)

if(this.applyControl.contains(oldApplyControl))

this.applyControl.remove(oldApplyControl);

}

/**@pdGenerateddefaultremoveAll*/

publicvoidremoveAllApplyControl(){

if(applyControl!

=null)

applyControl.clear();

}

}

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

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2