uml实验心得体会doc.docx
《uml实验心得体会doc.docx》由会员分享,可在线阅读,更多相关《uml实验心得体会doc.docx(7页珍藏版)》请在冰豆网上搜索。
uml实验心得体会doc
uml实验心得体会
UML实验报告
学院
班级 学号 姓名
UML实验报告
实验一:
用例图
实验结果:
小结实验心得体会:
用例模型用于需求分析阶段,它描述了待开发系统的功能需求,并驱动了需求分析之后各阶段的开发工作。
用例图是UML中用来对系统的动态方面进行建模的7种图之一。
用例图描述了用例、参与者以及它们之间的关系。
用例图从用户角度描述系统功能,并指出各功能的操作者。
通过本次实验,我熟悉RationalRose建模环境,更加清楚的了解了用例图的语义和功能,如何清晰明了的识别参与者、用例,学会了如何使用事件流描述用例。
同时掌握了用例间的类属关系、Include关系和Extend关系的语义、功能和应用。
最后通过本次实验学习了如何使用用例图为系统的上下文以及系统的需求建模。
思考题:
1.如果要删除参与者、用例,请问是在导航窗口删除,还是在绘图窗口删除?
答:
都可以删除,但在绘图窗口中有两种删除方式:
一种是只删除参与者、用例,而不改变其在导航窗口中的存在,另一种是从建模中完全删除。
2.如果要删除参与者和用例的联系,用例和用例的联系,请问是在绘图中删除,还是在参与者或用例的设置对话框中删除?
答:
都可以删除。
实验二:
类对象模型的建立
实验结果:
小结实验心得体会:
类图是面向对象系统建模最常用的图,描述了类图、接口集、协作以及它们之间的关系。
类图描述了系统的静态设计视,该视主要体现系统的功能需求,即系统应该提供给用户的服务。
通过本次实验,加深了我对类图语义的理解和功能的应用,掌握了类之间的联系,关联、依赖、聚合等,同时基本掌握了在RationalRose中绘制类的关联、依赖、泛化关系。
思考题:
选中一个模型对象,点击鼠标右键,比较快捷菜单项“Edit——Delete”与“Edit——DeletefromModel”,它们二者之间区别在哪里?
答:
“Edit——Delete”只是在绘图窗口中删除了模型对象,而“Edit——DeletefromModel”则是彻底的删除了模型对象。
实验三:
顺序图、协作图
实验结果:
顺序图:
1.
归还图书
2.借出图书
协作图:
1.归还图书
2.借出图书
小结实验心得体会:
顺序图描述了对象之间的动态合作关系,它强调对象之间消息发送的时间顺序,同时显示对象之间的交互。
协作图与顺序图是同构的,Rose可自动转换。
顺序图是强调消息的交互作用图,协作图描述了对象间的关系,是强调发送和接收消息的对象的组织结构的交互作用图。
通过本次实验,掌握了对图书管理功能中的借书用例、还书用例进行动态建模。
实验过程中由于对RationalRose工具软件的不熟识,导致出现了不该出现的错误。
在设计阶段,顺序图中需要引入边界类和控制类,在识别对象职责的基础上,需要将消息转换为类的方法,为方法定义参数、返回值类型,便于计算机的实现。
其中,为方法定义参数、返回值类型的时候,还是不能够快速准确的作出判断。
实验四:
活动图
实验结果:
实验一
1.源代码生成,在逻辑视图中绘制下图,生成JAVA源文件生成代码步骤:
“Tools”-〉“Java”-〉“GenenateCodes”。
publicclassMeeting{
privateStringUserName;
privateStringScheduled_User; privateDateStart_Time; privateDateEnd_Time; privateStringLabel;
publicStringgetUser() {
returnnull; }
publicStringgetOther() {
returnnull; }
publicDategetStart()
{
returnnull; }
publicDategetEnd() {
returnnull; }
publicStringgetLabel() {
returnnull; }
publicStringtoString() {
returnnull; }
publicVoidmain(Stringargs) {
returnnull; }}
2.进行逆向工程,自行找到一个项目软件源代码,进行逆向工程。
逆向工程的实现
“Tools”->“Java”-〉“ReverseEngineerJava…”。
publicclassStudent{
privateStringname; publicStudent() { }
publicvoidtest() { }}
实验二
根据下属需求,分析参与者和用例,并建立网络教学系统的用例图。
网络教学系统的功能需求主要包括以下几个方面:
①学生可以登录网站浏览信息、查找信息和下载文件。
②教师可以登录网站输入课程简介、上传课件文件、发布消息、修改和更新消息。
③系统管理员可以对页面维护以及批准用户的注册申请。
录入课程简介
下载文件
查找信息
修改消息
注册信息处理
实验三
1、已知借书的活动图如图3所示,若要求欠费的读者需结清欠款才能借书,请完善该活动图,并在Rose内绘制出来。
图3借书处理活动图
2、图4为图书“借书”活动图,文字描述此活动图包括哪些活动,活动按照怎样的顺序发生?
图4“借书处理”活动图
读者查找所需的图书,若找到图书,将所需的图书带到借阅台;工作人员输入读者信息,检查读者身份是否合法,如果读者身份合法,
进入;
录入图书信息,并检查图书是否允许借阅,如果允许,则记录借阅信
息,否则直接进入;
检查是否还有图书需要录入,如果还需录入,进入,否则提借阅信息。
3、绘制“删除读者信息”用例的活动图。
删除读者信息一般按照以下步骤进行:
管理员在录入界面,输入待删除的读者名;
“业务逻辑”组件在数据库中,查找待删除的读者名;
如果不存在,则显示出错信息,返回步骤,如果存在则继续;“业务逻辑”组件判断“待删除的读者”是否可以删除;
如果不可以,则显示出错信息,返回步骤,如果可以则继续;在数据库中,删除相关信息;显示删除成功信息;结束。
实训总结
通过一个学期的Uml学习,我从书本上获取了基本的理论知识,而真正的学以致用,将书本理论知识运用到实际的过程,是这次UML实训的体现。
三个周的UML实训,主要是围绕着一个实训题目“基于UML系统需求分析与设计--合倍利业务流管理系统”进行的,以小组为单位进行文档的编写,其中还对各种流程图、类图、用例图等的绘制,整个过程设计了知识的方方面面。
从中让我认识到UML的作用和运作模式以及方法,它是一种统一建模的标准语言,现在对于大多数软件开发来说,都使用Uml作为建模语言,形成了统一的标准。
它是图形化的的语言,可以很直观的描述一个事物的状态、行为与特征,很好的说明与表达了“合贝利任务管理”这个系统。
总之,在我看来,UML是一种定义良好、易于表达、功能强大且普遍适用建模语言。
融入软件工程领域的心思想、新方法和新技术,作用域不限于支持面向对象的分析和设计,也不单纯是一种方法,仅仅是一组符号而已,它可以对任何具有静态机构和动态行为的系统进行建模,所以我很喜欢适用UML,在今后的学习中,我还会进一步对该模型的学习,因为它方便、简洁、干净、清爽,直观形象,把整个软件系统的开发流程都融入进去。
这次实训过程中,文档方面的编写,遇到了很多的问题,这些问题主要是对基础知识的理解和把握不够,不能融会贯通和学以致用,有时遇到困难的时候真的不知如何着手解决,但是,我始终相信的那句话“读万卷书,不如行万里路,行万里路不如名师指路”。
所以,当遇到自己模糊和自己难以解决的问题时,向指导老师和懂的同学请教,帮助解决我遇到的问题,经过他们的讲解后,我下来自己在分析,在动手,从不理解到理解,从不会到会,从懂到懂,这是一个让我学习愉快的过程,在这个过程中,既可以丰富了自己的知识,还可以和老师和同学进行有效地方沟通。
在这次实训过程中,感触最深的也就是合作精神了。
独木难成林,单枪匹马,那是最错误的思想和做法。
这次我是深有感触了。
对于一个系统的分析,到最终项目的完成,需要分析每个文档,然后在写出纸质的文档,而在每个文档中,内容比较多,分析也要求比较到位,所以单独凭借一个人去完成,似乎有点困难,
于是我们小组,将每个文档进行分析,能独立成块就分配给每一个人,这样,每个人都有自己的任务,谁也不会闲着,既学到了知识,也充实了自己。
另外一点,就是我深深体会到了积累知识的重要性。
在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。
两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。
社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向。
实训的日子即将结束,回想这一个过程,有过痛苦,有过烦恼,有过喜悦和有过成功。
痛苦烦恼的是自己对所学书本知识掌握得不是很扎实,面对着从书本上学到的知识与实际联系不起来,总结起来就是自己的动手练习的时间太少。
而喜悦的是,在做的过程中遇到了困难和问题,主动向老师和会的同学请教,然后再做,直至做正确做成功后的那种喜悦。
团队的力量是无穷的,通过组员的共同努力,完成了实训项目。
虽然,我们这组的项目存在着诸多的不足和缺点,但这正是以后学习和工作需要弥补的。
这次实训将为我以后进入社会提过了一笔宝贵的财富,是对我能力的一个见证。
最后,不得不感谢指导教师熊飞老师的辛勤指导,和小组成员的共同努力!
学生实验报告书
实验课程名称 UML建模技术 开课学院 指导老师姓名 学生姓名 学生专业班级
XX—XX学年第一学期
实验课程名称:
UML建模技术
实验课程名称:
UML建模技术
UML学习心得
(一)UML是一组用于描述OOAD过程的图形化表达方式。
UML为交流面向对象的设计中的需求,行为、体系结构的实现提供了一套综合的表示法。
(二)UML由9个不同类型的图组成:
用例图:
显示了系统的外部可视行为。
用例图描述了系统外的人员和系统的交互动作,以及系统的响应,该类型的图可以用于描述系统的功能需求。
活动图:
显示系统行为的峡谷纳西描述。
活动图描述了单个功能需求内部的细节行为,包括基本的场景和一些可选的场景。
组件图:
显示了系统的体系结构。
组件图描述了系统的可部署单元以及一些借口,可部署单元通过这些接口进行交互,该图可以用于研究系统的体系结构。
顺序图:
显示了对象随着时间的交互。
顺序图描述了某个功能需求的路径或场景内相对时间的详细行为,该图可用于理解系统元素之间的消息流程。
协作图:
显示了对象的交互,强调对象之间的关系。
类图:
显示了类的定义和关系。
类图描述了系统设计中的类和接口,以及他们之间的关系。
该图可用于定义内部的,面向对象的代码结构。
状态图:
显示了响应时间的状态改变。
状态图描述了系统如何改变状态以相应内部的和外部的事件,确保每个事件都被适当的处理。
部署图:
显示了系统的物理体系结构。
部署图描述了系统的可部署单元如何被赋予不同的节点,这些节点如何交互通信,用于系统映射和负载的研究。
包图:
显示了设计的层次结构。
包图描述了设计的相关元素如何按组结合在一起,以及他们之间的关系。
(三)各种图的作用
1.用例图
它是UML中最简单也是最复杂的一种图。
说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。
说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。
用例图表示了角色和用例以及它们之间的关系。
2.类图
UML面向对象中是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。
通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。
3.对象图
UML面向对象中对象图是类图的实例,几乎使用与类图完全相同的标识。
它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。
一个对象图是类图的一个实例。
由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
4.状态图
描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。
通常创建一个UML状态图是为了以下的研究目的:
研究类、角色、子系统、或组件的复杂行为。
5.时序图
又称顺序图,描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。
UML面向对象中顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。
消息用从一务垂直的对象生命线指向另一个对象的生命线的水平箭头表示。
图中还可以根据需要增加有关时间的说明和其他注释。
6.协作图
UML面向对象中协作图用于显示组件及其交互关系的空间组织结构,它并不侧重于交互的顺序。
协作图显示了交互中各个对象之间的组织交互关系以及对象彼此之间的链接。
与序列图不同,协作图显示的是对象之间的关系。
另一方面,协作图没有将时间作为一个单独的维度,因此序列号就决定了消息及并发线程的顺序。
协作图是一个介于符号图和序列图之间的交叉产物,它用带有编号的箭头来描述特定的方案,以显示在整个方案过程中消息的移动情况。
协作图用途:
通过描绘对象之间消息的移动情况来反映具体的方案。
显示对象及其交互关系的空间组织结构,而非交互的顺序。
7.活动图
UML面向对象中UML活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。
描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。
同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。
活动图由一些活动组成,图中同时包括了对这些活动的说明。
当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。
活动图中还可以方便地描述控制转移的条件以及并行执行等要求。
8.组件图
组件图是用来反映代码的物理结构。
从组件图中,可以了解各软件组件之间的编译器和运行时依赖关系。
使用组件图可以将系统划分为内聚组件并显示代码自身的结构。
组件图的主要目的是显示系统组件间的结构关系。
9.配置图
UML面向对象中配置图描述系统中硬件和软件的物理配置情况和系统体系结构。
在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。
在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行。
UML是一种软件建模语言,可以对任何具有静态结构和动态行为的系统进行建模。
在关注它建模特性的同时更要关注它的过程特性--在什么时间做什么工作,用什么模型,让哪些人来做。
对系统用户而言,软件的开发模型向他们描述了软件开发者对软件系统需求的
理解。
让系统用户查看软件对象模型并且找到其中的问题,可以使开发者不至于从一开始就发生错误。
对软件开发而言,软件的对象模型有助于他们对软件的需求以及系统的架构和功能进行沟通。
对软件的维护和技术支持者而言,在软件系统开始运行后的相当长的一段时间内,软件的对象模型能够帮助他们理解程序的架构和功能,迅速地对软件所出现的问题进行修复。
建模并不是仅对大型的软件系统,甚至一个小型的留言本也能从建模的过程中受益。
利用UML可以有效地解决软件设计和分析过程中的沟通和交流问题,可以高效的了解整个系统结构,并且在设计之初就将软件的设计结构和思想固化在纸上有利于规避项目实施过程中程序员离开的风险。
UML可以贯穿软件开发周期中的没一个阶段,在开发阶段,他可以用于说明、可视化、构建和书写面向对象软件制品的设计语言。
UML能贯穿整个软件开发过程是因为在每个阶段都能够提供相应相应的图形来对应,使得改变需求,设计代码,测试分析能变得相对简单。
在需求分析过程中,应该分为两个过程:
1需求的获取2、需求的分析。
需求的获取,往往不受到重视,在网上经常看到有人说,特别是国内目前的情况,项目工期紧,公司往往想方设法先把项目拿下来,然后就拿自己公司以往做过的项目做蓝本,然后再根据顾客的需求改动,再次开发,测试,交付就完工了。
但如果需求的获取,做不好,往往对后面的步骤流程造成很大的影响,造成太多的改动和损失。
所以为了得到更好的需求,使用UML建模能变得相对简单。
例如需求的用例图对系统的功能模型的搭建。
用例间的关系有包含、扩展、泛化三类。
用例图包括角色、用例和关系。
角色可以有角色的描述,用例可以有用例的描述,这些描述在交流或评审中会非常有用。
用例可以泛化,泛化用例具有基本用例的功能,还可以做得更多。
角色也可以泛化,泛化角色能执行原角色能执行的所有用例,还可以执行更多的用例。
除了基本用例,角色不能与包含用例、扩展用例和泛化用例有联系。
一个用例可以对应一个类图。
增、删、改、查一般来说对于大多数应用做为一个简单的操作即可,不必要作为一个用例来分析。