一个例子说明UML及系统分析

  • 格式:doc
  • 大小:448.00 KB
  • 文档页数:20

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一个例子说明UML与系统分析

一、案例场景描述 (2)

二、问题与分析 (5)

三、类图的基本认识 (7)

四、领域模型 (10)

五、系统结构与序列图 (11)

六、系统结构与通信图 (16)

七、总结 (20)

一、案例场景描述

仁医院案例背景描述

在HSDc的RA与信仁医院的特助及用户经过一到两次的需求访谈后,HSDc的软件架构师(Software Architect)请他们的项目经理(Project Manager; PM)安排了一次跟信仁医院特助的访谈。

信仁医院的特助觉得很不可思议,因为他完全不懂软件的设计,也没有写过程序,在他以往的经验中,也只和其他软件公司的系统分析师(System Analyst; SA)进行过访谈。在他的想象中,软件开发人员的对等窗口应该是医院的信息中心,似乎不大应该是他,HSDc的项目经理特别跟信仁医院的特助说明,他们的软件架构师主要是要了解一下信仁医院的领域模型(Domain Model),因此希望和信仁医院中的领域专家(Domain Expert)来沟通。

信仁医院的特助抱着有些怀疑又有点好奇的心态,参与了这次的访谈,以下是该次访谈的部分内容。

HSDc项目经理:特助,今天非常谢谢你百忙之中抽空来参加这次访谈,接下来我把时间交给这次项目的软件架构师。

信仁医院特助:别这么说,其实我也很好奇,希望可以帮助你们软件人员些什么,毕竟,我对软件开发一窍不通。

HSDc 软件架构师:特助,不要这么说,我们才是医院相关业务的新手,我想能够有机会和你谈谈,对于未来我们在进行软件设计时,有相当大的帮助。

信仁医院特助:哦,是这样啊,那我们要怎么开始呢?

HSDc 软件架构师:嗯,首先,我想要了解一下,在贵单位的住出院业务中,有什么样的"事件"是特别重要的,需要被记录下来的。

信仁医院特助:所谓的"事件"指的是什么?

HSDc 软件架构师:举个例子来说,像病人来医院看病时,必须要先到柜台去做一个登记,这个登记的动作必须被医院记录下来,以利后续的处理,这个事件在医院就称为"挂号事件"。总之,所谓的"事件"指的是其发生于某一个特定的时间点,且对于后续某些业务会有相对影响的业务。

信仁医院特助:嗯,我好像有一点了解了,"事件"?还蛮有趣的。

HSDc 软件架构师:哈哈,软件就是这么有趣啊!

信仁医院特助:好,让我想一想……有了,住出院业务应该会有一个重要的事件:住院,这是所有业务的一个起始点。

HSDc 软件架构师:嗯,非常好。接下来我要请问的是,"住院事件"本身需要记录些什么?有没有需要什么相关的明细信息?

信仁医院特助:我不大懂。什么叫做"明细信息"?

HSDc 软件架构师:让我再举一个例子。特助有到书店买过书吗?

信仁医院特助:当然有。

HSDc 软件架构师:那我就以买书作为一个例子来说明。在买书时,对书店来说,必须要记录一个"顾客买书事件"。

信仁医院特助:对。

HSDc 软件架构师:可是顾客买的书可能超过一本,这时候,书店的"顾客买书事件"中,就必须要记录顾客买了哪些书的"明细信息"。

信仁医院特助:哦,我知道了。那就是我们之前跟其他软件厂商谈的时候,他们老是挂在口中的什么"一单多料"、"Master-Details"什么的。说实话,我真听不大懂他们在说什么。

HSDc 软件架构师:哈哈,这是软件人员常常会犯的一些错误,真地很抱歉哦!回到我们的问题,对于医院的"住院事件"来说,有没有什么明细信息是需要保存下来的?

信仁医院特助:我想想。病人的数据?这是明细信息吗?

HSDc 软件架构师:病人的数据?是每一次不同的住院事件,病人的数据都会不同吗?

信仁医院特助:那倒不是。

HSDc 软件架构师:那就不是明细信息了。病人的数据倒比较像是参与这次"住院事件"的关系人。

信仁医院特助:哦。那病人这次住院的病情信息呢?

HSDc 软件架构师:嗯,这听起来就有点像了。不过每一次的住院事件中,会有多个的病情信息吗?

信仁医院特助:嗯,有可能。病人可能是因为内科诊断需要住院,但是需要其他科别的会诊。

HSDc 软件架构师:很好,那我们找到了明细信息及相关征状的信息。接着,我要请问的是,对于我们医院的工作人员来说,住院事件有哪些人员会参与?

信仁医院特助:有医生、护士,还有柜台人员等。

HSDc 软件架构师:了解了。我记得好像住院的时候有分主治大夫跟住院医生,这两个角色的人对于住院事件的处置会有所不同吗?

信仁医院特助:嗯,大体来说,两个角色都要直接对病人负责,不过主要的病情判断还是由主治大夫来负责,住院医生只是担任紧急状况的紧急处置。

HSDc 软件架构师:所以对于一个住院事件来说,主治大夫跟住院医生是各有一个喽!

信仁医院特助:原则上是这样。

HSDc 软件架构师:对了,我记得以前在SARS(非典型肺炎)时,好像有听说有些医院因为没有"负压隔离病床",所以不能够接SARS的患者,那是不是代表在住院的时候,特定的病床会给特定的疾病来使用?

信仁医院特助:我们医院没有这个问题。当然,原则上病床有分为各科别各自的病床,不过这并非强制性的,外科的病人有时也可以住进内科的病床。但是既然提到这个问题,让我想到跟医院

经营相关的问题。原则上,我们的病床分成两类,一类是医保病床,这类型的病床,病人不需要负担病床的费用;另一类的病床则是非医保的病床,这类型的病床,病人则需要部分负担病床的费用。未来在结算病人住院的费用时,我们需要知道病人究竟是使用哪一种病床。

HSDc 软件架构师:太好了,这对我们的设计有很大的帮助,谢谢。我想今天的会议到这边应该可以先告一段落,再次感谢特助的帮忙。

信仁医院特助:就这样啊?不用谈什么表单吗?

HSDc 软件架构师:不用,这样就可以了。