- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《软件工程教学课件》06_类的详细设计幻灯片资料.pptx
大连理工大学软件学院;详细设计的主要活动;类方法的详细设计;图形设计工具;图形设计工具;图形设计工具;表格工具;判定表示例;判定表构成;判定表化简;判定树;判定树;语言工具;PDL特点;PDL示例;类的详细设计;状态图的基本结构;状态;状态转换;类Project的状态;状态图的扩展;2018/8/23;对象状态也可能是由多个互不依赖的子状态构成的。
每种可能的行为变化,可使用独立的状态图分别进行描述。
每个子状态图相互独立,组合在一起又构成了一个全局的状态。
使用并行的组合方式减轻状态图的描述负担。;并行状态的考虑;带有时间控制的状态图,可以将间隔时间或发生的次数作为条件和动作执行的依据。
;状态图应用;2018/8/23;操作界面的状态描述;对象约束语言;2018/8/23;学号要求至少五位数字长,并且构成学号的数字要大于或等于10000。若使用OCL进行描述:
context Student inv regStudentId:
self.stuId = 10000
关键字context表明此段OCL的描述与哪些UML对象或类相关。
关键字inv表示这是不变的(invariant),也就是说所有的Student对象都要遵守这个约束
self关键字指的是对context对象的引用,正如在Java中的this或C++中的*this的作用一样。
context s:Student inv:
s.stuId = 10000
;将OCL同样以包的形式进行组织,便于使用和管理:
package com::myCompany::mySW
context Student inv:
context Student inv:
endpackage
除了实例变量的约束外,OCL同样可以对实例的方法进行,描述方法执行的条件,如未休学的学生至少要选择一门课程:
context Student::selectedLectures(): Integer
pre stustatus: self.freesemester = false
post selectedLectures: result 0
;当该生选择了一门之前没有学过的课程时,该生选课总数加一:
context Student::registerLecture(v: Lecture)
pre: notSelected(v)
post: self.selectedLectures()@pre = self.selectedLectures() – 1
@pre表示引用的是方法执行之前的状态值。;某门课的授课教授在上课时是不能在国外的:
context Lecture inv:
self.status = Lecturestatus::running
implies
not self.prof.inForeign
关键字implies表示“if-then”的条件说明。
对于一个结课的课程成绩要求分数在1-5之间,可以进行如下的描述:
context Examination inv:
self.selectedLecture.status = Lecturestatus::closed implies
(self.note = 1.0 and self.note = 5.0)
;OCL目前只支持一些标准集合类型,如Collection、Set、OrderedSet、Sequence以及Bag。
collection - method(parameter)
一个学生在一个学期内最多可以选择12门课程:
context Student inv:
Student.selectedLecture
- select (s | s.status = Lecturestatus::running)
- size() = 12
竖线前的s变量为一个循环变量,用于遍历集合student.selectedLecture中的每一个元素。
返回来的集合又进一步使用了size()方法,提供所含元素数量的整型值。;如果在已考试的课程中存在“理论”课程,则方法hasTheoryLect()返回真值:
context Student::hasTheoryLect():Boolean
post: result = self.examination
- exists( p | p.note = 60 and p.selectedLecture.title=Theory)
要求方法passedLectures()返回的所有课程必须是已经修过的课程:
context Student::passedLectures():Collection
post:
您可能关注的文档
- 《网上支付与结算》课题讨论——磁卡和金融IC卡的发展比较研究报告.ppt
- 《职业卫生教学课件》职业有害因素所致其他职业病_476复习课程.ppt
- 《职员职业生涯规划与集团未来战略的关系》培训资料.ppt
- 《自动控制原理教学课件》第3章-1_612复习课程.ppt
- 《自动控制原理教学课件》第3章-2_613复习课程.ppt
- 《自动控制原理教学课件》第3章-3_614复习课程.ppt
- 《自动控制原理教学课件》第5章-2_618复习课程.ppt
- 《自动控制理论教学课件》一绪论_607复习课程.ppt
- 《自动控制理论教学课件》第4章 线性定常系统的线性变换_598复习课程.ppt
- 《自动控制理论教学课件》第三章习题_601复习课程.ppt
- 《软件工程教学课件》08_实现幻灯片资料.pptx
- 《软件工程教学课件》09_交互设计幻灯片资料.pptx
- 《运筹学》胡运权清华版-13-02风险决策_423复习课程.ppt
- 《运筹学》胡运权清华版-2-01对偶问题_407复习课程.ppt
- 《运筹学》胡运权清华版-2-02单纯形算法的矩阵表示_408复习课程.ppt
- 《运筹学》胡运权清华版-5-05指派问题_416复习课程.ppt
- 《运筹学》胡运权清华版-7-01动态规划_417复习课程.ppt
- 《运筹学》胡运权清华版-7-04动态规划应用举例_418复习课程.ppt
- 《运筹学教学资料》第一章 excel求解线性规划_428复习课程.ppt
- 《运筹学教学资料》第二章 winqsb教程_427复习课程.ppt
文档评论(0)