软件开发方式与技术应用动态模型.pptVIP

  • 4
  • 0
  • 约5.88千字
  • 约 68页
  • 2021-11-19 发布于广东
  • 举报
第4章 动态模型之 状态图、顺序图、协作图和活动图;§4.1 状态图(Statechart Diagram);一、状态图中的基本元素 基本元素包括: 状态、关系(转移)、判断、事件和动作。 1. 状态(State) 状态:是指在对象的生命期中的某种状况,在此期间 对象将满足某个条件、或执行某个动作、或等 待某个事件。 说明:每个对象都有状态,一个状态表示该对象执行 了之前活动后的结果。 其中:状态可以细分为不同的类型: ; ⑶ 一般状态: ;⑷ 组合状态(composite state) 组合状态:一个含有“子状态(substate)”的状态 子状态:嵌套在另一个状态中的状态 ;⑸ 历史状态(history state) 历史状态:是一个伪状态(pseudostate),其目的是记住从组合 状态中退出时所处的子状态。当再次进入组合状态 时,可直接进入这个子状态,而不是再次从组合状态 的初态开始。;;2. 关系 状态与状态之间的关系是标有“事件”字符串的单向关联关系。也可以没有“事件”。 ;4. 判定 一个判定是一个状态同两个以上状态之间的一种关系,工作流在此处分支转移。 判定符号:;二、事件(event); 1.调用事件(Call event): ? “调用(Call)” 是指在一个过程的执行点激发一个操作,它将一个控制线程暂时从调用过程转移到被调用过程。 ? 调用事件(Call event) 指的是一个对象对调用(Call)的接收,这个对象利用状态转换而不是利用固定的处理流程实现操作。 说明: 调用事件分为同步调用和异步调用两种;如果调用者需要等待操作的完成,则是同步调用;反之则是异步调用。 调用事件的语法格式如下: ;例:设有登录窗口和Login类, Login类中暂时没有属性 ;其描述“准备登录”状态到“登录”状态过程的状态图: ; 2.变化事件(Change Event): 变化事件指的是依赖于特定属性值的布尔表达式的条件满足时,状态发生改变。 变化事件用关键字“when”表示,其语法格式如下: ; 3. 时间事件(time event): 时间事件指的是满足某一时间表达式的情况的出现,例如到了某 一时间点或经过了某一时间段. 时间事件用关键字“after/when”表示,其语法格式如下:;;例1 :基于类Login的对象进行登录之状态图;例2:杀毒软件的定时杀毒过程可用状态图描述如下:;例3:;BOOL CEditDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here EditRes.Open(CRecordset::snapshot,NULL,CRecordset::none); m_er1=EditRes.m_R1; m_er2=EditRes.m_R2; m_er3=EditRes.m_R3; m_er4=EditRes.m_R4; UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE };void CEditDlg::OnUpButton() { // TODO: Add your control notification handler code here if(!EditRes.IsBOF()) EditRes.MovePrev(); m_er1=EditRes.m_R1; m_er2=EditRes.m_R2; m_er3=EditRes.m_R3; m_er4=EditRes.m_R4; UpdateData(FALSE); } void CEditDlg::OnDownButton() { // TODO: Add your control notification handler code here if(!EditRes

文档评论(0)

1亿VIP精品文档

相关文档