




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学与计算机学院实训报告课 程 名 称: 软件开发设计实训 课 程 代 码: 6014409 题 目: 学生成绩管理系统 年级/专业/班: 2011级软件工程 组 员 姓 名: 组 员 学 号: 312011080611XXX 开 始 时 间: 2013 年 10 月 16 日完 成 时 间: 2013 年 12 月 13 日课程设计成绩:技术水平与实际能力(50)说明书撰写质量(50)总 分(100)指导学生签名: 年 月 日目 录1 需求分析模型重构 41.1 业务需求分析41.2 非功能性需求分析62 业务分析模型62.1 业务主角62.2 业务用例分析72.3 业务用例场景分析72.4业务用例实现82.5 业务用例完整的包图83概念分析模型83.1核心业务活动图83.2关键业务概念用例图83.3概念用例分析(活动图)93.4概念用例实现分析93.5 概念用例完整的包图94 系统分析模型104.1 系统用户分析104.2 系统用例分析104.3 系统用例实现分析104.4 分析类104.5 组件模型分析114.6 系统分析完整的包图125系统设计模型125.1软件架构/框架选择125.2基于架构的设计类126设计类优化136.1设计类优化结果136.2采用的设计模式说明137面向对象数据库分析设计 137.1概念数据模型137.2概念数据模型优化/调整137.3物理数据模型13总结14附录A 部分生成的SQL语句14附录B 部分生成的程序结构性代码141 需求分析模型重构 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.1 BusinessControl层分析模型得到BusinessControl层分析模型如图4.9所示:图4.9BusinessControl层分析模型4.4.4.2 Entity层分析模型得到Entity层分析模型如图4.10所示:图4.10Entity层实现4.4.4.3 Window层分析模型得到Window层分析模型如图4.11所示:图4.11Window层实现4.4.5各系统分析类图4.4.5.1 BusinessControl层分析类图得到BusinessControl层分析类图如图4.12所示:图4.12BusinessControl层类图4.4.5.2 Entity层分析类图得到Entity层分析类图如图4.13所示:图4.13Entity层分析类图4.4.5.3 Window层分析类图得到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.1 Business 设计类 将设计类图结合软件架构分析类,映射出Business层设计类,如图5.3所示:图5.3Business层设计类5.2.2 Window层设计类 得到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语句if exists(select 1 from sys.sysforeignkey where role=FK_学生信息_GENERALIZ_学生) then alter table 学生信息 delete foreign key FK_学生信息_GENERALIZ_学生end if;drop index if exists 学生信息.Generalization_1_FK;drop table if exists 学生信息;/*=*/* Table: 学生信息 */*=*/create table 学生信息 ( );/*=*/* Index: Generalization_1_FK */*=*/create index Generalization_1_FK on 学生信息 ();alter table 学生信息 add constraint FK_学生信息_GENERALIZ_学生 foreign key () references 学生 on update restrict on delete restrict;附录B 部分生成的程序结构性代码 * Module: SimpleApply.java * Author: Administrator * Purpose: Defines the Class SimpleApply */package 逻辑视图.04设计模型;import java.util.*;/* pdOid 5bb1d2b9-0a1c-47ed-bdb9-c61384089d0d */public class SimpleApply /* pdRoleInfo migr=no name=ApplyControl assc=association2 coll=java.util.Collection impl=java.util.HashSet mult=0.* */ public java.util.Collection applyControl; /* pdOid b2e39b41-6fd8-4de5-8bd7-7d600b987a55 */ public void submit() / TODO: implement /* pdOid f262ef12-7f1f-42ab-bc03-ba7df1c0fd60 */ public int save() / TODO: implement return 0; /* pdGenerated default getter */ public java.util.Collection getApplyControl() if (applyControl = null) applyControl = new java.util.HashSet(); return applyControl; /* pdGenerated default iterator getter */ public java.util.Iterator getIteratorApplyControl() if (applyControl = null) applyControl = new java.util.HashSet(); return applyControl.iterator(); /* pdGenerated default setter * param newApplyControl */ public void setApplyControl(java.util.Collection newApplyControl) removeAllApplyControl(); for (java.util.Iterator iter = newApplyControl.iterator(); iter.hasNext();) addApplyControl(ApplyControl)iter.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年江西三上数学期末学业水平测试试题含解析
- 2025-2026学年惠州市惠城区数学三年级第一学期期末质量跟踪监视试题含解析
- 2025-2026学年佛山市禅城区三上数学期末试题含解析
- 2024年宜宾县数学三上期末考试模拟试题含解析
- 2024年桓台县数学三上期末检测模拟试题含解析
- 主管护师必看2025年考试试题及答案
- 2025年医疗卫生系统试题及答案
- 2025年执业药师考试中常见错误试题及答案
- 2025年自考行政管理热题试题及答案
- 新技术应用执业医师考试试题及答案
- 第21课《己亥杂诗(其五)》教学课件【知识精研】统编版语文七年级下册
- 消除艾滋病、梅毒和乙肝母婴传播项目工作制度及流程(模板)
- 2025届南通市重点中学中考生物模拟试题含解析
- 人教版数学五年级下册全册大单元整体教学设计
- 窝沟封闭课件
- 大数据平台建设及运营合作协议书
- 工程车驾驶员安全培训
- 第十单元 常见的酸、碱、盐 检测题(含答案)-2024-2025学年九年级化学人教版下册
- 业务合规培训
- 2025年高考语文一轮复习知识清单专题13:图文转换(学生版)
- 工厂实验室规划和建设
评论
0/150
提交评论