软件工程学期实验报告.docx
- 文档编号:9447675
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:26
- 大小:1.04MB
软件工程学期实验报告.docx
《软件工程学期实验报告.docx》由会员分享,可在线阅读,更多相关《软件工程学期实验报告.docx(26页珍藏版)》请在冰豆网上搜索。
软件工程学期实验报告
软件工程实验报告
学院:
计算机科学与技术
专业:
计算机科学与技术
指导教师:
lr
班级:
0410805
学号:
08100526
姓名:
csd
实验一日志
指导教师lr实验时间:
第六周星期二1.2节
学院计算机科学与技术专业计算机科学与技术
班级0410805学号08100526姓名csd实验室S331
实验题目:
熟悉UML和Rose开发环境
实验目的:
1.掌握UML中的几种图形。
2.掌握构成各种图形的基本模型元素(如角色、用例、类等)。
3.熟悉Rose开发环境,掌握模型元素的添加、删除、修改等操作和各种图形的建立。
实验要求:
学会使用面向对象的标准建模方法,了解用例视图,逻辑视图,组件视图,部署视图的作用,并且学会如何用rose软件画用例图、类图、序列图、协作图、状态图、活动图,组件图和部署图
实验主要步骤:
1创建一个用例图:
选中用例视图(UseCaseView),在弹出菜单中选择New>UseCaseDiagram。
激活刚才生成的用例图,并在图中添加两个角色(命名为Teacher、Student)和两个用例(命名为Search、Read),从该图中删除角色Teacher,从模型中删除用例Read,比较这两种删除方法的不同。
给Search用例添加一个文档说明:
查找图书
2用和第1步类似的方法,在逻辑视图中添加一个类图,并在类图中添加3个类,依次命名为:
ClassA、ClassB和ClassC,在ClassA和ClassB间添加关联关系,在ClassA和ClassC添加泛化关系,在ClassB和ClassC添加依赖关系。
再给ClassA添加一个属性Name和一个方法GetName()
3在逻辑视图中添加一个序列图,并在序列图中分别添加ClassA和ClassB的对象,给两个对象之间添加一条名为GetName()的消息。
4选择菜单Browse下CreateCollaborationDiagram,实现序列图和协作图之间的相互转换。
5逻辑视图中添加一个状态图,并在状态图添加一个开始状态、结束状态、Available状态、Sold状态,
6在逻辑视图中添加一个活动图,并在活动图中添加一个开始状态、结束状态、Login、Search和Exit活动和一个分支结构,如下图:
7在组件视图中添加一个组件图,并其中添加两个组件(A、B),画出它们之间的依赖关系。
如下图:
8在部署图中画出如下节点:
9结合具体操作,查阅相关的UML相关书籍、文档,理解UML中图形和基本建模元素。
实验结果:
1给Search用例添加一个文档说明:
查找图书
2再给ClassA添加一个属性Name和一个方法GetName(),
3给两个对象之间添加一条名为GetName()的消息
4在逻辑视图中添加一个状态图,并在状态图添加一个开始状态、结束状态、Available状态、Sold状态
5在活动图中添加一个开始状态、结束状态、Login、Search和Exit活动和一个分支结构
6在组件视图中添加一个组件图,并其中添加两个组件(A、B),画出它们之间的依赖关系
7在部署图中画出如下节点
心得体会:
第一次实际应用到用例图、类图、活动图等,之前对这些图都没有深入的理解,经过这次实验和同学的帮助,我对这些图产生了兴趣,觉得对于UML来说很实用,而且Rose开发环境可以很方便的画出这些图形出来。
实验二日志
指导教师lr实验时间:
第8周星期二1-2节
学院计算机科学与技术专业计算机科学与技术
班级0410805学号08100526姓名csd实验室S331实验题目:
图书馆系统的需求分析
实验目的:
1.掌握用例(UseCase)、角色(Actor)、用例图(UseCaseDiagram)的概念。
2.掌握用例与用例之间、用例与角色、角色与角色之间的相互关系。
3.掌握活动图的相关概念。
4.掌握描述系统需求的方法。
实验要求:
我们通过一个简单的图书管系统,它具有查询、预定、取消预定、借书、还书等功能,学会如何作一个系统的需求分析,同时学会图书管理系统中用户图,角色等之间的关系,以及各功能模块之间的关系,进一步熟悉上节课程所学习的内容,从而自己独立的开发系统。
实验主要步骤:
1.找出图书馆管理系统的角色,如:
普通用户、借阅者、借/还书的操作员,借阅者和借/还书的操作员都是由普通用户派生而来的。
2.找出与角色相对应的用例。
普通用户对应的用例:
实现按书名、作者、出版社、分类、书号查询;借阅者对应的用例:
查询自己的借阅情况、预定和取消预定;借/还书的操作员对应的用例:
借书、还书。
3.分析用例与角色、用例与用例、角色与角色之间的关系。
4.画出所有的用例图。
下面只是给部分参考图形,具体建模时需要根据实际情况画出相应的图形。
实验结果:
借书业务用况描述:
查询业务:
借还书业务:
图书管理业务:
2分析用例中的逻辑流程,描述用例的事件流。
查询用例对应的事件流用活动图描述如下:
借书用例对应的事件流用活动图描述如下:
还书用例对应的事件流描述如下:
预定用例对应的事件流描述如下:
取消预定用例对应的事件流描述如下:
心得体会:
这次实验是做的图书馆需求分析,在在需求分析的过程中,既要弄清楚各个用例之间的关系,又要分析角色、用例之间的关系,这样才能画出最后的图形。
而且需求分析对一个系统来说是很关键的一步,只有把这个做好了,才能做出我们想要的系统,才能满足我们对这个系统的要求、。
实验三日志
指导教师lr实验时间:
第10周星期二1-2节
学院计算机科学与技术专业计算机科学与技术
班级0410805学号08100526姓名csd实验室S331实验题目:
细化
(1)
实验目的:
1.进一步理解类图、状态图和活动图。
2.理解类的属性和操作以及与其相关的概念,重点掌握类与类之间的关系。
3.掌握对数据库的建模方法。
4.掌握状态图的相关概念。
5.能用这些图形和模型元素细化系统模型。
实验要求:
本次实验需要在上一次需求分析实验的基础上细化模型。
分析用例视图中的用例和用例对应的事件流,抽象出事件流中所涉及的类,并描述出用于存储数据的数据库,再用其他图形进行近一步的细化模型。
实验主要步骤:
1:
分析用例和用例对应的事件流,建立数据库模型。
右击浏览器中的ComponentView,选择DataModeler>New>Database,输入数据名LibaryDB,双击该数据库名,在弹出的对话框中的Target字段选择相应的DBMS,
2:
右击浏览器中的LogicalView中Schemas,选择DataModeler>New>Schema,双击新生成的<
3:
画出类和类图
4:
画出书的状态描述图
实验结果:
1<
2.画出的类图如下:
3状态图描述的书的状态如下:
心得体会:
这次实验是在上次做的需求分析的基础上对模型进行细化,这次的图形比较多,所以在画的时候特别小心,最后终于把要求的都画出来了,并且更深入的了解了整个模型。
实验四日志
指导教师lr实验时间:
第12周星期二1-2节
学院计算机科学与技术专业计算机科学与技术
班级0410805学号08100526姓名csd实验室S331实验题目:
细化
(2)
实验目的:
1.进一步理解序列图、协作图、组件图和配置图。
2.掌握消息的概念以及消息的同步性(简单、同步、阻止、超时、异步、过程调用)。
3.理解在序列图中对象的生命周期的概念。
4.理解组件、组件间的依赖性的概念。
5.理解处理器、设备、连接、进程的概念。
6.能用这些图形和模型元素细化系统模型。
7.掌握从模型生成代码的方法。
实验要求:
本次实验在上一次实验的基础上细化模型,其中在序列图和协作图中使用的对象所对应的类是在上一次实验中描述的类。
而且能用这些图形和模型元素细化系统类型,掌握代码生成方法
实验主要步骤及实验结果:
。
1.画出实现查询功能的序列图,并把消息映射到对象的方法,再加上必要的文档说明。
2.选择菜单Browse下CreateCollaborationDiagram,把序列图转换为协作图。
3.画出借书功能的序列图。
4.借书功能的协作图如下:
5.画出还书功能的序列图。
还书功能协作图如下:
6.画出预定功能的序列图。
预定功能协作图:
7.画出取消预定功能的序列图。
取消预定功能协作图:
8.在组件视图中画出下示组件图。
9.在部署视图中画出下示部署图。
10.选择Tools->webpublisher,弹出这样一个对话框,如下图所示:
在这个对话框中可以自由选择,当选择路径后,可单击preview预览,或者直接选择publish生成1.htm及其它相关的文件。
生成的1.htm文件代码如下:
--
functioncheckNavigator(){
varframeSet='
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML3.2//EN">\n'
+'\n'
+'
+'
+'
\n'+'
+'
+'
+'
+'
Thispageisinframes,whichyourbrowserdoesnotsupport.
\n'+'\n'
+'\n'
+'\n'
+'\n';
varunsupported='
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML3.2//EN">\n'
+'\n'
+'
\n'+'
+'
+'\n'
+'
+'
+'
\n'
+'
+'
+' +' +' +'formatyouwillneedtoaddPNGsupporttoNetscapeCommunicator. +' +'Communicator4.5orbetterhasbuilt-insupportforPNGandthereforedoesnotrequireanyspecialplug-intoview' +'webpagescreatedbyRoseWebPublisher. +' +'\n' +'\n' +'\n'; varbOK=0; if(navigator.appName.indexOf("Microsoft")>=0){ if(navigator.appVersion.charAt(0)=='4') bOK=1; }elseif(navigator.appName.indexOf("Netscape")>=0){ if((navigator.appVersion.charAt(0)=='4'&&navigator.appVersion.charAt (2)=='0'&&navigator.appVersion.charAt(3)>='6')|| (navigator.appVersion.charAt(0)=='4'&&navigator.appVersion.charAt (2)>='5')|| (navigator.appVersion.charAt(0)>'4')) bOK=1; } if(bOK==1) { document.open("text/html","replace"); document.write(frameSet); document.close() } else { document.open("text/html","replace"); document.write(unsupported); document.close() } } //-->
\n'