1、应用举例例2医院病房监护系统医院病房监护系统一、问题描述一、问题描述 为了对危重病人进行实时为了对危重病人进行实时监护,随时了解病人病情,及时监护,随时了解病人病情,及时进行处理,建立进行处理,建立病房监护系统。病房监护系统。病症监视器安置在每个病床,通过网络将病人的病症信号病症监视器安置在每个病床,通过网络将病人的病症信号(组合)实时传送到中央监护系统进行分析处理。(组合)实时传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊况进行监控,监护系统实时地将病人
2、的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。并打印病情报告和更新病历。系统根据医生的要求随时打印病人的病情报告,系统定期系统根据医生的要求随时打印病人的病情报告,系统定期自动更新病历。自动更新病历。请对系统需求进行分析!请对系统需求进行分析!经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1.1.监视病员的病症(血压、体温、脉搏等)监视病员的病症(血压、体温、脉搏等)2.2.定时更新病历定时更新病历3.3.病员出现异常情况时报警。病员出现异常情况时报警
3、。4.4.随机地产生某一病员的病情报告。随机地产生某一病员的病情报告。例例2 2 医院病房监护系统医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历对对“医院病房监护系统医院病房监护系统”进行分析,确定系统的主要功进行分析,确定系统的主要功能如下:能如下:1.病症监视器可以将采集到的病症信号(组合),格式病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统。化后实时的传送到中央监护系统。2.中央监护系统将病人的病症信号开解后与标准的病症中央监护系统将病人的病症信号开解后与标准的病症信号库里的病症信号的正常值进行比较,当病症出现异常时信号库里的病症信号
4、的正常值进行比较,当病症出现异常时系统自动报警。系统自动报警。3.当病症信号异常时,系统自动更新病历并打印病情报当病症信号异常时,系统自动更新病历并打印病情报告。告。4.值班护士可以查看病情报告并进行打印。值班护士可以查看病情报告并进行打印。医生可以查看病情报告,要求打印病情报告,也可以查医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病历。看或要求打印病历。6.系统定期自动更新病历。系统定期自动更新病历。需求分析(1)谁使用系统的主要功能?谁使用系统的主要功能?(2)谁需要系统的支持以完成日常工作任务?谁需要系统的支持以完成日常工作任务?(3)谁负责维护,管理并保持系统正常运行?
5、谁负责维护,管理并保持系统正常运行?(4)系统需要应付(或处理)哪些硬设备?系统需要应付(或处理)哪些硬设备?(5)系统需要和哪些外部系统交互?系统需要和哪些外部系统交互?(6)谁(或什么)对系统运行产生的结果(值)感兴趣?谁(或什么)对系统运行产生的结果(值)感兴趣?需求分析通过回答这六个问题以后,再进一步分析可以识别出本系通过回答这六个问题以后,再进一步分析可以识别出本系统的四个角色:统的四个角色:。角色描述模板:角色描述模板:角色:角色:病病 人人角色职责:角色职责:提供病症信号提供病症信号角色职责识别:角色职责识别:负责生成、实时提负责生成、实时提供各种病症信号。供各种病症信号。角色:
6、角色:值班护士值班护士角色职责:角色职责:负责监视病人的病负责监视病人的病情变化情变化角色职责识别:角色职责识别:(1)使用系统主要功能使用系统主要功能(2)对系统运行结果感对系统运行结果感兴趣兴趣角色角色:标准病症信号库标准病症信号库角色职责:角色职责:负责向系统提供病症负责向系统提供病症信号的正常值信号的正常值角色职责识别:角色职责识别:(1)负责保持系统正负责保持系统正常运行常运行(2)与系统交互与系统交互角色:角色:医医 生生角色职责:角色职责:对病人负责,负责对病人负责,负责处理病情的变化处理病情的变化角色职责识别:角色职责识别:(1)需要系统支持需要系统支持以完成其日常工作以完成其
7、日常工作(2)对系统运行结果对系统运行结果感兴趣感兴趣角色描述.识别用例识别用例回答下面的问题:回答下面的问题:与系统实现有关的主要问题是什么?与系统实现有关的主要问题是什么?系统需要哪些输入系统需要哪些输入/输出?这些输入输出?这些输入/输出从何而来?到输出从何而来?到 哪里去?哪里去?执行者需要系统提供哪些功能?执行者需要系统提供哪些功能?执行者是否需要对系统中的信息进行读、创建、修改、执行者是否需要对系统中的信息进行读、创建、修改、删除或存储?删除或存储?通过分析可以初步识别出系统的用例为:通过分析可以初步识别出系统的用例为:中央监护中央监护,病症监护病症监护,提供标准病症信号提供标准病
8、症信号,病历管理病历管理,病情报告管理病情报告管理。顶层用例图为:顶层用例图为:通过分析可以初步识别出系统的用例为:中央监护,病通过分析可以初步识别出系统的用例为:中央监护,病症监护,提供标准病症信号,病历管理,病情报告管理。顶症监护,提供标准病症信号,病历管理,病情报告管理。顶层用例图为:层用例图为:医院病房监护系统高层用例图医院病房监护系统高层用例图 值班护值班护士士医生医生病人病人标准病症标准病症信号库信号库病症监护病症监护提供标准提供标准病症信号病症信号中央监护中央监护病历管理病历管理病情报告管理病情报告管理进一步将用例细化,即分解用例:进一步将用例细化,即分解用例:分解分解:将从病症
9、监护器传送来的组合病症信号分解将从病症监护器传送来的组合病症信号分解为系统可以处理的信号。为系统可以处理的信号。将病人的病症信号与标准信号比较将病人的病症信号与标准信号比较。如果病症信号发生异常(即高于峰值),发出如果病症信号发生异常(即高于峰值),发出报警信号。报警信号。将处理后的数据格式化以便写入病历库将处理后的数据格式化以便写入病历库。分解分解:采集病人的病症信号。采集病人的病症信号。将采集来的模拟信号转化为数字信号。将采集来的模拟信号转化为数字信号。将采集到的脉搏,血压等信号数据组将采集到的脉搏,血压等信号数据组 合为一组信号数据。合为一组信号数据。根据病人的情况改变监视器采样频率。根
10、据病人的情况改变监视器采样频率。用例细化 i i(此用例不分解)(此用例不分解)分解为:分解为:分解为分解为:在显示器上显示病情在显示器上显示病情 在打印机打印病情报告在打印机打印病情报告用例细化细化的用例图病人病人模数转化模数转化数据格式化数据格式化值班护士值班护士报警报警信号采集信号采集比较信号比较信号标准病症标准病症信号库信号库 医生医生信号数据组合信号数据组合采样频率采样频率改变改变提供标准提供标准病症信号病症信号生成病历生成病历查看病历查看病历更新病历更新病历打印病历打印病历显示病情报告显示病情报告打印病情报告打印病情报告分解信号分解信号用例名:用例名:中中 央央 监监 视视执行者:
11、执行者:值班护士、医生值班护士、医生目标:目标:对对病人的病症信号进行监测、处理,超过极限报警。功能描述:功能描述:1.分解信号:将从病症监护器传送来的组合病症信号分解为系统可以处理的信号。2.比较信号:将病人的病症信号与标准信号比较。3.报警:如果病症信号发生异常(即高于峰值),发出报警信号。4.数据格式化:将处理后的数据格式化以便写入病历库。其他非功能需求其他非功能需求:高可靠性、实时性高可靠性、实时性主要步骤:主要步骤:1.按设定频率连续接收来自各病人的病症信号,并进行分解。2.将病人的病症信号与专家系统(标准病症信号库)中的标准信号进行比较判断是否超过极限值。3.若超过极限值,进行报警
12、,并及时更新病历和打印病情报告。相关用例:相关用例:病症监护、提供标准病症信号、病历管理、病情报告管理。病症监护、提供标准病症信号、病历管理、病情报告管理。相关信息:相关信息:(优先级、性能优先级、性能、频频执行执行率率):优先级:报警处理具有最高优先级:报警处理具有最高优先级3,一般病历管理为1,其他2.性能:实时性、高可靠性性能:实时性、高可靠性频频执行执行率:根据病情率:根据病情严重程度 12-30次/小时用例用例“中央监护中央监护”描述模板描述模板 第十章内容概要 面向对象方法学概述面向对象方法学概述 面向对象的概念面向对象的概念 面向对象建模面向对象建模 UML可视化建模基础可视化建
13、模基础 面向对象的需求提取面向对象的需求提取 面向对象分析面向对象分析 模型:为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。模型是一种思考工具,把知识规范地表示出来。模型是现实的简化、化简的实现。面向对象建模 UML描述模型的三种基本词汇:要素描述模型的三种基本词汇:要素(Things)、关系()、关系(Relationships)、图)、图(Diagrams)UML有有4种种要素要素:表述表述结构结构的要素:的要素:Use Case、类、接口、协、类、接口、协作作 表述表述行为行为的要
14、素:交互、状态机的要素:交互、状态机 用于用于组织组织的要素:包的要素:包 用于用于辅助说明辅助说明的要素:注释的要素:注释面向对象建模符号系统UML UML有有4种种关系关系:关联关联关系:有联系关系:有联系 依赖依赖关系:使用关系:使用 泛化泛化关系:特殊到一般关系:特殊到一般 实现实现关系:规约到解决方案关系:规约到解决方案 UML有有9种图种图:Use Case图图:展示:展示Use Case、Actor及其关及其关系;系;类图类图:展示类、接口、包及其关系;:展示类、接口、包及其关系;面向对象建模符号系统UML0.1*employeremployee 顺序图顺序图:按时序展示对象间消
15、息传递;:按时序展示对象间消息传递;协作图协作图:强调收发消息的对象间的组织结构;:强调收发消息的对象间的组织结构;状态图状态图:展示对象在其生命周期中的可能状态:展示对象在其生命周期中的可能状态以及在这些状态上对事件的响应;以及在这些状态上对事件的响应;活动图活动图:展示系统从一个活动转到另一活动的:展示系统从一个活动转到另一活动的可能路径和判断条件;可能路径和判断条件;对象图对象图:某个时间点上系统中各对象的快照;:某个时间点上系统中各对象的快照;构件图构件图:展示系统各构件及其关系;:展示系统各构件及其关系;配置图配置图:展示交付系统中软硬件间物理关系;:展示交付系统中软硬件间物理关系;
16、面向对象建模符号系统UML Use Case图图主要用于描述系统和外部环境的关系。主要用于描述系统和外部环境的关系。Use Case:对系统提供的功能的一种描述。:对系统提供的功能的一种描述。(A use case describes behavior that the system exhibits to benefit one or more actors.)Actor:是可能使用这些:是可能使用这些Use Case的人或外部系统。的人或外部系统。(Actors are roles adopted by things that interact directly with system.A
17、 role is like a hat that something wears in a particular context.)系统边界系统边界:Use Case在内,在内,Actor在外;在外;用例之间的关系用例之间的关系:extend、include、GeneralizationUse Case(用例)图简介PlaceOrderCancleOrderCheckOrderStatusRequestCatalogShipProductMail order systemactorcommunication relationshipSubject namesystem boundaryuse
18、caseCustomerShippingCompanyDispatcher Actor与与Use Case间的连线称为间的连线称为通信关通信关联联,表示,表示Actor与相应与相应Use Case的交互。的交互。无论有无箭头,通信关联都表示双向会无论有无箭头,通信关联都表示双向会话,话,箭头表示箭头表示Actor触发触发Use Case。类图应用最广,可在各个层次上描述系统类图应用最广,可在各个层次上描述系统的静态结构。的静态结构。方框表示类:上面写类名,中间是类的属方框表示类:上面写类名,中间是类的属性,下面是类的操作。性,下面是类的操作。关联(关联(Association):关联关系表示类
19、的:关联关系表示类的实例之间存在某种稳定的联系。实例之间存在某种稳定的联系。对象图是类图的一种变形,对象名下面要对象图是类图的一种变形,对象名下面要加下划线。加下划线。类图/对象图简介A Class in UML+print()-name:string(idl)-age:intPersonClass nameAttributesOperatorsAn Object in UMLobject name and classjoe:PersonClass Relationships in UML Generalization Dependency Association These can repr
20、esent inheritance,using,aggregation,etc.-R ole1*-R ole20.1Example class diagram+open()+close()+display()-name:string(idl)windowdialogboxconsolewindoweventcontrolAssociation Structural relationship between peer classes(or objects).Association can have a name and direction,or be bi-directional Role na
21、mes for each end of the association Multiplicity of the relationshipExamples of AssociationpersoncompanypersoncompanyWorks For-employee1.*-employer*Association code example class Person public:private:Company*employer;class Company public:private:Person*employee;Each instance of Person has a pointer
22、 to its employer Each instance of Company has a collection of pointers denoting its employeesLink Attributes Associations may have properties in the same manner as objects/classes.Salary and job title can be represented aspersoncompany-salary-title1.*-employee*-employerAggregation(聚合/共享聚集)A part of
23、relationship(physical containment)class ProjectGroup public:ProjectGroup();private:Person membern;Composition(组合,组合聚集)Aggregation vs Composition Aggregation is a shared containment.Many other classes may have the same type of aggregate.E.g.,string,list Composition is aggregates that can not stand by
24、 themselves(e.g.,foot,arm,etc.)Generalization/InheritanceDependency 依赖关系描述两个模型元素(类、用例等)依赖关系描述两个模型元素(类、用例等)之间的语义连接关系:之间的语义连接关系:其中一个模型元素其中一个模型元素是独立的,另一个模型元素不是独立的,是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元型元素改变了,将影响依赖于它的模型元素。素。windchillwindspeedSensortempatureSensorRefine
25、当对同一个事物在不同抽象层次上描述时,当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。假设两个模这些描述之间具有细化关系。假设两个模型元素型元素A和和B描述同一个事物,它们的区别描述同一个事物,它们的区别是抽象层次不同,如果是抽象层次不同,如果B是在是在A的基础上的的基础上的更详细的描述,则称更详细的描述,则称B细化了细化了A,或称,或称A细细化成了化成了B。细化的图示符号为由元素。细化的图示符号为由元素B指向指向元素元素A的、一端为空心三角形的虚线的、一端为空心三角形的虚线 在三个层次上使用类图:在三个层次上使用类图:概念层:描述应用域中的概念概念层:描述应用域中的概念 说明
26、层:考察软件的接口部分,而非实现部说明层:考察软件的接口部分,而非实现部分,要区分接口与实现(即类型与类)分,要区分接口与实现(即类型与类)实现层:揭示软件实现体的构成情况。只有实现层:揭示软件实现体的构成情况。只有在这层才有真正严格意义上的类的概念在这层才有真正严格意义上的类的概念 要理解问题:概念层要理解问题:概念层 要理解软件:说明层要理解软件:说明层类图/对象图简介 顺序图描述几个对象间的动态协作关系,顺序图描述几个对象间的动态协作关系,一个对象通过发送消息与其他对象相互作一个对象通过发送消息与其他对象相互作用。一个对象对消息的接收触发一个操作用。一个对象对消息的接收触发一个操作的执行
27、,从而可能给其他对象发消息。的执行,从而可能给其他对象发消息。顺序图对识别顺序图对识别Use Case 中的附加对象很有中的附加对象很有用:用:包含在包含在Use Case中的对象称为参与对象;中的对象称为参与对象;顺序图展示了这些对象间传送消息的时间顺序,顺序图展示了这些对象间传送消息的时间顺序,反映了对象之间的一次特定交互过程;反映了对象之间的一次特定交互过程;顺序图简介 也是用来描述系统中对象间的动态协作关也是用来描述系统中对象间的动态协作关系;系;协作图侧重说明哪些对象间有消息传递;协作图侧重说明哪些对象间有消息传递;顺序图侧重表述在某情况下对象间传递消顺序图侧重表述在某情况下对象间传
28、递消息的时序性;息的时序性;协作图中要给消息编号来标明消息的执行协作图中要给消息编号来标明消息的执行顺序;顺序;协作图简介 一个状态是对象满足的一种条件。状态可一个状态是对象满足的一种条件。状态可认为是一个类属性值的抽象;认为是一个类属性值的抽象;用对象的多个状态及这些状态间的转换来用对象的多个状态及这些状态间的转换来描述单个对象的行为。描述单个对象的行为。标注状态转移:事件标注状态转移:事件条件条件动作动作 动作:伴随转移发生,不会被中断动作:伴随转移发生,不会被中断 活动:在某一状态中进行,可以被中断活动:在某一状态中进行,可以被中断状态图简介 类似流程图类似流程图 描述所要进行的各项活动
29、的执行流程描述所要进行的各项活动的执行流程 描述一个描述一个Use Case的处理流程的处理流程 活动图可以方便地描述控制转移条件以及活动图可以方便地描述控制转移条件以及并行执行等要求并行执行等要求活动图简介 构件图描述程序代码的组织结构构件图描述程序代码的组织结构 构件:构件:源代码构件源代码构件 二进制目标代码构件二进制目标代码构件 可执行构件可执行构件 文档构件文档构件构件图简介 描述系统中软硬件的物理配置情况和系统描述系统中软硬件的物理配置情况和系统体系结构体系结构 结点表示实际的物理设备结点表示实际的物理设备 连接表示各物理结点的连接方式连接表示各物理结点的连接方式 结点内部表示分配
30、到该结点运行的构件或结点内部表示分配到该结点运行的构件或对象对象配置图简介 标记值(标记值(Tagged Value)附属于附属于UML元素的各种信息(元素的各种信息(Property)具有形式:具有形式:属性名属性名=值值 约束(约束(Constraint)UML中限制一种或多个元素语义的规则中限制一种或多个元素语义的规则 形式:形式:约束条件约束条件UML的三种扩展机制UML的三种扩展机制 构造型(构造型(Stereotype)构造型机制是指在已有的模型元素基础上建构造型机制是指在已有的模型元素基础上建立一种新的模型元素。它与现有元素要相差立一种新的模型元素。它与现有元素要相差不多,只是多
31、一些特别的语义不多,只是多一些特别的语义UML的三种扩展机制 视图:被建模系统的各个方面,它们都反视图:被建模系统的各个方面,它们都反映同一个系统,具有一致性;映同一个系统,具有一致性;建立完整模型所需的视图种类和数量不定,建立完整模型所需的视图种类和数量不定,按需选取;按需选取;视图把建模语言同开发系统的方法、过程视图把建模语言同开发系统的方法、过程连接起来;连接起来;用视图描述系统 Use Case View(用例视图):(用例视图):视图内容:系统行为、动力视图内容:系统行为、动力 静态表现:静态表现:Use Case图图 动态表现:交互图、状态图、活动图动态表现:交互图、状态图、活动图
32、 观察角度:用户、分析员、测试员观察角度:用户、分析员、测试员 Logic View(逻辑视图):(逻辑视图):视图内容:问题及解决方案的术语词汇视图内容:问题及解决方案的术语词汇 静态表现:类图、对象图静态表现:类图、对象图用UML描述系统的5个视图 动态表现:交互图、状态图、活动图动态表现:交互图、状态图、活动图 观察角度:类、接口、协作观察角度:类、接口、协作 Process View(进程视图):(进程视图):视图内容:性能、可伸缩性、吞吐量视图内容:性能、可伸缩性、吞吐量 静态表现:类图、对象图静态表现:类图、对象图 动态表现:交互图、状态图、活动图动态表现:交互图、状态图、活动图
33、观察角度:线程、进程观察角度:线程、进程 Component View(实现视图):(实现视图):用UML描述系统的5个视图 视图内容:构件、文件视图内容:构件、文件 静态表现:构件图静态表现:构件图 动态表现:交互图、状态图、活动图动态表现:交互图、状态图、活动图 观察角度:配置、发布(观察角度:配置、发布(Releases)Deployment View(实施视图):(实施视图):视图内容:部件的发布、交付、安装视图内容:部件的发布、交付、安装 静态表现:配置图静态表现:配置图 动态表现:交互图、状态图、活动图动态表现:交互图、状态图、活动图 观察角度:拓扑结构的节点观察角度:拓扑结构的节点用UML描述系统的5个视图用UML描述系统的5个视图