APP下载

UML状态图在软件工程设计中的应用研究

2015-07-25樊波袁国铭周萍成天华

微型电脑应用 2015年11期
关键词:股民进程股票

樊波,袁国铭,周萍,成天华

0 引言

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的一种软件开发系统性工程。UML(Unified Modeling Language,统一建模语言)作为软件工程最为重要的描述手段和工具,在整个软件系统构建工程中起到了关键作用。它们的关系如图1所示:

图1 UML设计在软件周期中的应用

其中的用例图、活动图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图以及数据包图等等都是属于UML中的设计方法图[1-5]。

1 状态图

状态图是系统分析的一种重要工具,它通过建立类对象的生存周期模型来描述对象随时间变化的动态行为。系统分析员在对系统建模时,最先考虑的不是基于活动之间的控制流,而是基于状态之间的控制流,因为系统中对象的状态变化最容易发现和理解。它常用到的图符如表1所示:

表1 UML状态图图符

状态图和活动图都是用来描述对象的动态行为。状态图侧重于从行为的结果来描述,也就是一个一个的状态;活动图侧重于从行为的动作来描述,也就是一个一个的活动。对于同一个行为,可以使用状态图和活动图从不同的角度来描述。例如,如图2所示:

图2 进程的状态图和活动图

图 2中分别用活动图和状态图描述了一个进程的工作过程和状态变化,该进程完成一个典型的计算过程,即:输入数据、计算、输出结果。其中图2的(b)图的活动图比较好理解,进程从起点开始分别执行“输入数据”、“计算”和“输出结果”这3个活动,然后结束该进程。活动图虽然比较好理解,但是它只侧重动作的描述,并不能反映实际系统的变化。图 2(a)是该进程的状态图,首先进程得到处理器后,变成“运行”状态;当需要输入数据时,进程提出输入要求,进入“阻塞”状态;输入数据完成后,进程进入“就绪”状态;等到进程再次被调度占有处理器时进程的状态变为“运行”,进程进行相应的计算处理;得到计算结果后,进程提出输出请求,进入“阻塞”状态;输出结果完成后,进程进入“就绪”状态;等到进程又一次被调动占有处理器,这时进程的状态变为“运行”,进程运行结束。状态图主要反映了动作对于系统产生的影响,反映了系统中类和对象属性的实际变化,对于设计和实现人员理解系统的内部状态有很大的作用。

行为图主要用于描述系统的动态模型和组成对象间的交互关系,包括状态图和活动图。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实际中并不需要为所有的类画状态图,仅需为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动[6-10]。

2 状态图的设计步骤

状态图一般用于对系统中的某些对象,比如类、用例和系统的行为建模。建模的时候要找出对象所处的状态、触发状态改变的动作,以及对象状态改变时应该执行的动作。具体的建模步骤如下:

(1)找出适合用模型描述其行为的类;

(2)确定对象可能存在的状态;

(3)确定引起状态转换的事件;

(4)确定转换进行时对象执行的相应动作;

(5)对建模的结果进行相应的精化和细化。

3 状态图在证券交易系统中的应用

(1)找出证券交易系统涉及类

根据状态图建模设计的步骤要求,分析证券交易系统,发现本系统一共涉及以下几个类(对象):股票,股民,证券系统,上市公司,证监会,银行和证券营业所。

下面主要就股民和股票两个类进行状态图的绘制。

3.1 股民的状态图

(1)股民的状态分析

股民一般指从事股票交易的个人投资者,一般公民一旦进入证券交易所开户就成为股民。股民一般包括两种状态:不含有股票和持有股票状态,在此为了方便区分,把持有股票状态的股民称为“股东”,开户而未买入股票状态的称为股民。

(2)状态图的描述

通过对股票在证券交易系统中可能的状态分析,我们绘制状态图如图3所示:

图3 股民状态图及交易子图

(a)图为股民整体的状态图,(b)图为股民一天交易子状态的状态图。

判断两个不同状态之间的转换的触发事件(动作):买入股票,由股民变成了股东;卖出全部股票,又由股东变成了股民。如果是复合状态,就应该观察其子状态图,子状态图是复合状态图的展开,如图 3(b)所示:注释告诉我们这是股民一天的交易状态图,图中有一个“ ”图符,表明股东交易是从上一个交易日结束算起,再进行“买入股票”或者“卖出部分股票”动作,进入今天交易状态。“ ”表明股东可以进行多次交易。

从开始到结束将状态图按箭头指向梳理一遍:通过“开户”动作“进入股市”,成为“股民”,再通过“买入股票”成为某个上市公司的“股东”,“买入/卖出”交易可以循环进行。直到股民到证券所要求“退户”,办理了相关手续后“退出股市”。

3.2 股票的状态图

(1)股票的状态分析

股票是国家正大力提倡的一种金融投资工具,下面分析一般股票的几个状态:

配送阶段:公司在准备上市过程中,会根据证券法规的要求,分配一些原始股票给相关人员,我们把这阶段的股票叫做“原始股票”,通常它的价格比较低。

股票自由交易:当公司获准上市时,他会选择某个交易时间正式“上市股票发行”,进而股票进入“自由交易”状态。通常,由于中国特殊的国情,股票在定发行价时会有一个 10%~20%范围的让利(与他们根据财务报表算出来的价格比较)。这在中国叫做“打新股”,通常90%的新上市股票都会在上市第一天价格上涨超过10%的涨停幅度(新股第一天,没有涨跌幅的限制)。进入自由交易状态后,有如下几种状态:

1)交易时间状态

这是指股票正常交易时间段,股票处于自由交易状态(或买或卖),在中国交易时间为周一到周五:上午9:30~11:30;下午13:00~15:00;当然,此时的股票交易是受到监查的,如果异动太大,会实施紧急停牌。比如说:连续多个交易时涨停或是跌停;首个交易日涨跌太大。

2)非交易时间状态

其它的时间,股票不交易,但股民可随时登录证券系统查看股票已披露信息。在这段时间,上市公司通常完成对股票的分红,送股,增股,扩股(如果有的话),证券系统也会进行一些系统的维护工作:比如统计数据,更新或维修系统。

3)交易停止:

当股票交易出现异动被证监会下令实施“停牌”接受调查;上市公司召开股东大会;股票进入股改程序,股票在正常交易时间同样不能交易。通常直到证监会发出复牌指令之后,股票才进入交易状态。

4)ST股票状态:

当上市公司连续两年公布的财务报表都亏损时,证监会按相关法规,对对应股票进行“ST”警告处理。它的交易规则发生变化,比如:价格的涨跌幅为+5%或-5%(正常股票在中国为+10%和-10%),它的交易方式不变化,同时,它会受到证监会的更为严厉的监查。

5)股票退出二级市场

通常,在股票退出二级市场之前,还有一个一年的机会期,在此期间如果公司情况好转,年终的财务报表不亏损,按规定将重新返回交易时间状态或非交易时间状态等,但亏损严重,按规定就退出二级股票市场。股民为此应该额外小心!但中国目前退市情况极为罕见。

股票市场上,股票的可能状态全都在此展现,它们彼此转换的活动也都表示了出来,本例的分析到此为止。

(2)状态图描述

通过对股票在证券交易系统中可能的状态分析,我们绘制状态图如图4所示:

图4 股票自由交易状态图

图4(a)图为股票整体的状态图,图4(b)图为股票交易子状态的状态图。需要注意图中没有绘出ST股票,但有正常股票的“交易停止”状态,因为它们的触发机制一致,故而没有重新绘出。

从图4中可以看出一个股票的状态变化过程:公司在上市准备阶段,进行原始股票的配置,一旦上市发行,就进入股票自由交易状态,在交易过程中,出现非法交易,由证券系统按规定实施停牌,直到调查完毕。连续两年亏损的上市公司,将被证券系统加上“ST”符号,表示“警告退市”。如果一年以后的财务报表依然没有改变,将实施退市。

在实际的项目中,同一个对象不同的人在分析过程中,得到的状态和事件可能不相同,这是正常的。对象状态的个数与分析的详细程度有关,另外还和用户的要求有关。不过,只要能够满足用户要求就可以了。

4 总结

软件工程设计是一项系统工程,其中包括了用例图、活动图、状态图、类图等在内的多种软件设计和开发模型,为了提高软件开发者的程序开发效率,通过UML的多种不同工具共同完成了软件开发的系统工程,其中如用例图、活动图等工具的使用,为软件设计后续的详细设计以及程序开发明确了前行的具体方向,提高了效率。

状态图是用来建模对象是如何改变其状态的一种有用建模图形。状态定义为对象行为在某一时刻的快照(Snapshot)或者转折点(Milestone),对于单个对象行为改变,状态图相对于活动图有其天然优势。尤其在如下系统中,比如:针对病人的医疗系统,针对医院管理的医院绩效管理系统的开发和设计。状态图与活动图的组合使用在可以预见的将来还将一直持续下去[11-17]。

[1] Fowler,M. UML精粹: 标准对象建模语言简明指南(第3版)[M]. 北京:电子工业出版社,2012.

[2] 宋国顺.软件工程中UML建模的技术与分析[J].软件导刊,2010,8:50-54.

[3] Larman,C. UML和模式应用(第 3版)[M].北京:机械工业出版社,2006.

[4] 袁国铭,李洪奇,樊波.关于知识工程的发展综述[J].计算技术与自动化,2011,30(1):138-143.

[5] 袁国铭,刘瑞,樊波,等.UML用例图在软件工程中的步骤设计研究[J].微型电脑应用,2014,30(1):46-48.

[6] 樊波,袁国铭,成天华. UML活动图在软件工程设计中的应用研究[J].网络新媒体技术,2015,4(6):41-46.

[7] 郑山海.用意“美好”实现难[J].中国卫生, 2015,9:52-53.

[8] 王明晓.医院院长必备十大技能[J].中国卫生,2015,4:64-66.

[9] 郑山海.重庆事件与医保盲区[J].中国卫生,2015,5:50-52.

[10] 樊波,袁国铭.中国中央卫生行政机构发展简史[J].中华医学图书情报杂志,2014,3:31-33.

[11] 王明晓.以“霍桑试验”和“鲇鱼效应”激活医院人力资源管理[J].医院院长论坛-首都医科大学学报(社会科学版),2014,2:40-42.

[12] 王明晓.建立股份制医院的理论探讨[J].中华医院管理杂志,1988,12(06):338-340.

[13] 王明晓,高艳. 战略管理与医院员工培训[J].中华医院管理杂志,2007,12(06):427-428.

[14] 单文卫.新医改背景下公立医院绩效管理模式的研究[J].医学与社会,2012,25(01):58-60.

[15] 王明晓.实事求是科学决策[J].中国卫生产业,2009,12:23-25.

[16] 王明晓.新医改方案也要在实践中不断完善[J].中国医院,2007,9:28-30.

[17] 王明晓.公立医院在坚持公益性中艰难前行[J].医院院长论坛,2009,3:5-7.

猜你喜欢

股民进程股票
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
本周创出今年以来新高的股票
本周创出今年以来新高的股票
力量
本周连续上涨3天以上的股票
近期连续涨、跌3天以上的股票
力量
悲催的股民
社会进程中的新闻学探寻