《软件工程教学课件》06_类的详细设计幻灯片资料.pptxVIP

《软件工程教学课件》06_类的详细设计幻灯片资料.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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:

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档