http://www.infoq.com/cn/articles/use-uml-to-do-system-analysis
作者 邱郁惠 发布于 2008年6月19日 下午11时42分
Java
主题
构建系统
标签
UML
使用UML如何能让我们做好系统分析的工作呢?就让我们通过本章的基金模拟项目,先睹 为快,抢先体验一番。
CIM-1:定义业务流程
定义及分析业务流程(Business Process)是为了尽快理清系统范围,以便估算开发成本及时间,可不是为了要改造业务流程。系统分析员千万别误解了此步骤的目的。所以,系统分析员在定义及分析业务流程时,要记得挑选跟系统有关的业务流程。
CIM-1定义业务流程的生成,主要有如下的业务用例图和简述。请看图2-1的业务用例图,图中的每一个业务用例代表一条业务流程,业务执行者则代表位于企业外但会启动或参与业务流程的人。投资人到银行临柜申购基金,启动了银行内部的一段关于申购基金的业务流程。再者,投资人也可能临柜办理赎回基金,这又引发了另一条业务流程。
至于业务用例简述,简洁扼要即可,我们主要用它来记录和区分业务流程。
CIM-2:分析业务流程
通过CIM-1圈出了系统将参与的业务流程之后,针对每一个业务用例,系统分析员得开始分析它的工作流程,并且绘制活动图(Activity Diagram)与业务人员取得共识。随后到了CIM-3时,才能够依此定义出系统可以协助之处,并且规划出系统范围。
此处,我们挑选一般的申购基金流程当示范,并绘制出如图2-2所示的活动图,展示了单笔申购基金的一般交易流程。
CIM-3:定义系统范围
经过了CIM-1的定义业务流程,以及CIM-2的分析业务流程之后,终于进入到CIM-3这场压轴戏了。CIM-1和CIM-2的生成文件,跟CIM-3的生成文件之间,有如下的关联性:
- CIM-2活动图中的每一个动作,都可能成为CIM-3的系统用例。
- CIM-1中的业务执行者,以及CIM-2中的动作负责人,都可能成为CIM-3的系统执行者(System Actor)。
针对上述的图2-2一般流程的活动图,我们分析得出如图2-3的系统用例图,以及下述的用例简述。
PIM-1:分析系统流程
在CIM阶段,系统分析员大约花1~2周的时间,尽快生成初步的系统用例,以便让相关的决策人员可以从中挑选出首期开发的系统用例,而这也就是首期的系统范围。
随后,项目正式进入PIM阶段,也是正式进入分析阶段,所以系统分析员将投入更多的时间,针对首期的系统用例详述规格,作为正式需求文件的一部分,也作为业务人员与开发人员之间的沟通文件。
所以,系统分析员在PIM-1的主要工作,将针对每一个系统用例,分析其内部细节,并编写详尽的系统用例叙述(UC Description)。UML并未提出标准的叙述格式可供遵守,不过系统分析员可以在网络上找到许多实用的用例叙述格式,或者翻阅一些UML或用例相关书籍,也可以发现许多很有特色的用例叙述格式。
此处,我们示范编写“网络申购单笔基金”和“网络申购定期定额基金”的系统用例叙述,如下图2-4和图2-5所示:
PIM-2:分析业务规则
企业通过一组规则(Buisness Rules)来控制整体的运作,包括人员、流程、系统、概念的运作,皆受制于业务规则。由此足见业务规则之重要,所以早从PIM-1的系统用例叙述,一直到此处的PIM-2状态图以及稍后的PIM-3类图,我们都会要求系统分析员必需通过这些UML图,记录且呈现重要的业务规则。
例如,在经过PIM-1的步骤之后,我们认为“定期定额申购”是很重要的业务对象,而且涉及许多重要的业务规则,所以决定为它绘制如图2-6的状态图,以便组织业务规则,同时也对定期定额申购有更深入的理解。
PIM-3:定义静态结构
在PIM-3中,系统分析员用类图来表达系统内部的静态结构。系统只有具备稳定且具弹性的静态结构,才能够顺应需求变更,迅速支撑多样化的系统用例。之后,类图可能通过设计师之手,进行调整,并且成为程序员最关切的设计图之一。程序员通常会按照类图的内容,来编写并组织源代码。
在PIM-3的过程中,系统分析员寻找操作绝对优先于寻找属性。因为属性随处可见,特别是从PIM-1搜集而来的窗体,里头多的是对象必须保存的属性。而寻找操作就没这么直接简单了,系统分析员必须多动脑筋才能定义出操作,所以先别管属性了,记得优先找操作。
进行PIM-3时,系统分析员可以通过下列步骤,建立出如图2-7的类图:
- 套用交易模式,并且经过调整之后,系统分析员可以获得初步的静态结构。
- 分析PIM-2的状态图之后,系统分析员可以为类增加属性及操作。
- 分析PIM-1搜集来的窗体,系统分析员可以为类增加更多的属性。
- 经过PIM-4的序列图,系统分析员可以为类增加更多的操作,并且描述操作的方法。
-
PIM-4:定义操作及方法
在PIM-4中,系统分析员可以用序列图来表达,系统内部一群对象合力完成某一个系统用例时,执行期间的交互情形。之后,序列图可能通过设计师之手,进行调整,并且成为程序员最关切的设计图之二(另一张是类图)。程序员通常会按照序列图的内容,编写出方法的源代码雏型。
此外,PIM-1的系统用例叙述和PIM-3的类图,对PIM-4的序列图有不可或缺的贡献。从PIM-1的系统用例叙述中,系统分析员可以分析出系统流程。而在PIM-3的类图中,系统分析员定义出系统内部的静态结构。随后,到了PIM-4的序列图时,则结合了系统用例以及静态结构两者。
系统分析员通过序列图的思考与表达,试图安排依据类们所生成的一群对象之间的交互,让这一群对象可以合力完成某一个系统用例。同时,在序列图中,一群对象交互所引发的操作,则可以反馈给类图,定义出更多的操作及属性,甚至发现之前未发现的其他类及关系。
系统分析员可参考下述步骤来绘制序列图:
- 扮演启动者的执行者对象放置于序列图最左方;扮演支持者的执行者对象放至于序列图的最右方。
- 针对系统用例叙述里所记载每项流程步骤,判断执行时需要使用到哪些数据,且可指派拥有该数据的对象负责该项工作。
- 试着执行序列图,以便调整流程,并且为操作加上参数。
- 把绘制序列图时所找到的操作及属性,反馈给类图。
以“网络申购单笔基金”系统用例之主要流程为例,我们示范绘制出如图2-8所示的序列图。
最后,系统分析员可以试着执行一次序列图的流程,并且为操作加上参数。增加输入(in)及输出(out)参数如下:
- 查询托售基金清单(out 基金名称清单)
- 查询基金名称(out 基金名称,基金代号)
- 查询扣款账号(out 扣款账号)
- 单笔申购基金(in 基金代号,申购金额)
- 计算手续费(in 申购金额,out 手续费)
- 查询银行折扣(out 银行折扣)
- 查询基金管理费(out 基金管理费)
- 查询综存账户余额(out 综存账户余额)
- 查询综存账户余额(in 扣款账号,out 综存账户余额)
- 确认单笔申购(out 凭证号码)
- 扣款()
- 扣款(in 交易金额)
- 设定申购日期()
- 产生交易编号(out 凭证号码)
由于,单笔申购和定期定额申购计算手续费的方法相同,所以系统分析员可以将单笔申购类里的“计算手续费”操作移至申购交易类,并汇总上述序列图所新增的操作与相关属性,更新类图如2-9所示。
在CIM与PIM之后
由于我们采用MDA(Model-Driven Architecture)开发程序,作为专业分工的依据,因此系统分析员的工作聚焦于CIM与PIM阶段,至于PSM及编码阶段,则交由其他的设计师负责之。MDA主要将生成的UML模型,分为下列三个阶段:
- CIM(Computation Independent Model)──聚焦于系统环境及需求,但不涉及系统内部的结构与运作细节。
- PIM(Platform Independent Model)──聚焦于系统内部细节,但不涉及实现系统的具体平台(Platform)。
- PSM(Platform Specific Model)──聚焦于系统落实于特定具体平台的细节。例如,Spring、EJB2或.NET都是一种具体平台。
因此,系统分析员执行了前述的CIM与PIM步骤,并且获得高质量的生成之后,设计师会依据具体平台进一步生成PSM阶段的设计,并交由程序员按图编码,编写出适用于特定具体平台的代码。
分享到:
相关推荐
《用UML做好系统分析》是一份详细指导如何利用统一建模语言(UML)进行系统分析的文档。UML是软件工程中的一种标准建模语言,用于描述系统的各种视角,包括业务流程、系统功能、行为和静态结构。以下是根据文档内容...
本文将深入探讨架构设计的方法学以及如何利用统一建模语言(UML)进行系统分析。 首先,架构设计的方法学是一个综合性的过程,它包括了多种技术和策略,用于定义系统的结构、组件、接口以及它们之间的关系。这个...
本实验指导书旨在指导学生学习UML系统分析及设计的知识和技能,通过实践实验,学生将掌握面向对象系统分析和设计的方法、UML语言的应用、Rational Rose软件的使用等技术。 一、课程概述 UML系统分析及设计是计算机...
**UML系统建模与分析试卷详解** UML(统一建模语言)是软件工程领域中一种广泛应用的可视化建模工具,它为软件开发过程提供了标准化的语言,用于描述系统的结构和行为。本资料集合了“UML系统建模与分析”的全面...
通过这份《系统分析师讲义-王勇-jiang.pdf》,考生和从业者可以系统地学习和复习这些关键知识点,提升自己的专业技能,为应对高级系统分析师考试或实际工作中的挑战做好准备。同时,讲义中的案例分析和实战练习将...
通过深入学习和练习《系统分析师考试试题分类精解(2019版)》中的题目,考生可以全面掌握系统分析师所需的知识技能,提高应对考试的能力,并为实际工作中解决复杂IT问题做好准备。系统分析师不仅需要扎实的技术基础...
系统分析师考试,作为信息技术领域的一项专业资格认证,旨在评估并证明个人在系统分析、设计、实施和管理方面的...通过深入学习和实践这些真题,考生可以全面提高自己的专业能力,为系统分析师的资格认证做好充分准备。
《软考系统分析师历年真题及答案》是一个针对国家软考系统分析师考试的重要参考资料,它包含了历年的实际考试题目和对应的答案。系统分析师是信息技术领域中的一个高级专业资格,主要负责系统规划、分析、设计以及...
7. **系统分析与设计**:通过实例展示如何运用UML进行系统分析、设计和文档化。 **实验报告部分**则可能包含以下内容: 1. **实验目的**:明确每个实验的目标,如理解某个特定UML图的构造和用途。 2. **实验步骤*...
- **需求分析**:通过用例图等来表示系统的需求。 - **系统设计**:利用类图、组件图和部署图来描述系统的架构。 - **代码生成与维护**:支持从模型自动生成代码或文档,帮助进行后续的维护工作。 - **测试**:通过...
《UML-MDA实务手册投影片》是一份专为系统分析师设计的学习资料,涵盖了系统分析的重要概念和技术,特别是UML(统一建模语言)和MDA(模型驱动架构)的应用。通过对这些投影片的深入学习,我们可以掌握如何有效进行...
**UML(统一建模语言)是面向对象分析与设计的一种标准化表示方法,它通过图形化的方式描绘系统模型,帮助开发者清晰地理解、沟通和设计软件系统。在本题库中,你将找到针对UML认证考试的练习题目,旨在帮助你熟悉并...
课程的目标受众主要包括分析师(系统分析师、需求分析师、商业分析师)、项目经理、软件分析师和设计师、质量保证设计师和测试员、客户和用户。这些角色在软件开发过程中都扮演着重要角色,因此需要熟悉使用案例建模...
**UML(统一建模语言)是软件开发过程中的一个重要工具,主要用于系统分析和设计阶段。在准备软考的过程中,理解和掌握UML的基本概念、图形符号以及应用是至关重要的。以下是对UML专题的深入解析:** 1. **UML简介*...
3. **系统分析师笔记**:这些笔记可能包含对特定概念、技术或案例研究的深入解析,如数据流图、实体关系图、用例图等建模工具的应用,以及系统分析师在项目中的角色和职责。 4. **历年试题**:通过分析历年试题,...