且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《面向对象分析与设计》一3.1 系统边界

更新时间:2022-09-29 20:46:39

3.1 系统边界

在系统尚未存在时,如何描绘用户需要一个什么样的系统?如何规范地定义用户需求?
我们可以首先把系统看作一个黑箱,看它对外部的现实世界发挥什么作用,描述它的外部可见的行为。这里所说的系统是指被开发的计算机软件系统,而不是泛指问题域中的全部事物所构成的现实系统。用OO方法所开发的系统是通过对现实世界的抽象而产生的。问题域中的某些事物(如使用系统的一些人员)位于系统边界之外,作为系统的外部实体处理,而系统内的成分(简称系统成分)是指在OOA和OOD中定义的那些系统元素。
系统边界是一个系统所包含的所有系统成分与系统以外各种事物的分界线。如图31所示,系统是由一条边界包围起来的未知空间,系统只通过边界上的有限个接口与外部的系统使用者(人员、设备或外系统)进行交互。

《面向对象分析与设计》一3.1 系统边界

把系统内外的交互情况描述清楚了,就确切地定义了系统的功能需求。若最终实现的系统就具有这样的功能,那这个系统也就是用户所需要的,即用户就是通过这样的交互使用系统。
现实世界中的事物与系统的关系包括如下几种情况:
1)某些事物位于系统边界内,作为系统成分。如超市中的商品,抽象为超市商品销售管理系统内的类“商品”。
2)某些事物将是与系统进行交互的参与者,系统中没有相应的成分作为它们的抽象表示,它们位于系统边界以外。如商场中的收款员,可以作为位于系统边界外与系统进行交互的参与者(若系统内设置了“收款机”对象),而不在系统中设立相应的“收款员”对象,这意味着系统并不关注收款员本身的信息和功能,而只关注销售与收款。
3)某些事物可能既有一个对象作为其抽象描述,而本身(作为现实世界中的事物)又在系统边界以外与系统进行交互。还是以超市中的收款员为例,他本身是现实中的人,作为系统的使用者;在系统边界内,又可有一个相应的“收款员”对象来模拟其行为或管理其信息,作为系统成分。这种做法注重收款员本身的信息和功能。
4)某些事物即使属于问题域,也与系统责任没有什么关系。如超市中的保安员,在现实中与超市有关系,但与所开发的系统“超市商品销售管理系统”没有关系。这样的事物既不位于系统边界内,也与系统无关。
认识清楚了上述事物之间的关系,也就确定出了系统边界。