系统总体结构设计
出处:按学科分类—工业技术 企业管理出版社《工程师手册》第635页(7288字)
系统设计工作应该自顶向下地进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。总体设计主要是指在系统分析的基础上,对整个系统的划分(子系统)、机器设备(包括软、硬设备)的配置、数据的存储规律以及整个系统实现规划等方面的合理安排。
1.系统划分
前面我们强调过结构化系统分析设计的基本思想就是自顶向下地将整个系统划分为若干个子系统,子系统再分子系统(或模块)层层划分,然后再自上而下地逐步设计。那么,怎样才能实现结构化的系统设计,子系统(或模块)的划分又应该遵循什么样的规律呢?应该承认,目前对于子系统的划分还没有一套为世人所公认的经典化方法。人们在实际工作过程中,除了有一些成型的方法以外,还夹杂着大量艺术的成分在内。这包含着个人长期积累的工作经验,个人的习惯,对问题的不同理解等。但是,尽管如此,人们在长期的实践中摸索出了一套子系统的划分方法。虽然它还不太成熟,但已为广大实际工作者自觉或不自觉采用了。现将这些方法罗列于下。
(1)系统划分的原则
我们已介绍过从科学管理的角度划分子系统的方法,它是我们划分系统的基础。但在实际工作中,我们往往还要根据用户的要求,地理位置的分布,设备的配置情况等等重新进行划分。系统划分的一般原则是:
①子系统要具有相对独立性
子系统的划分必须使得子系统内部功能、信息等各方面的凝聚性较好。在实际中我们都希望每个子系统或模块相对独立,尽量减少各种不必要的数据、调用和控制联系。并将联系比较密切、功能近似的模块相对集中,这样对于以后的搜索、查询、调试、调用都比较方便。
②要使子系统之间数据的依赖性尽量小
子系统之间的联系要尽量少,接口要简单、明确。一个内部联系强的子系统对外部的联系必然是相对很少。所以划分时应将联系较多的都划入子系统内部。如:在前面功能-数据分析时,我们就曾将逻辑上具有一定相关性的内容都集中到了一起,这样作为我们合理划分子系统提供了科学的依据。相对集中的部分划入各个子系统的内部,余下的一些分散、跨度比较大的联系,就成为这些子系统之间的联系和接口。这样划分的子系统,将来调试、维护、运行都是非常方便的。
③子系统划分的结果应使数据冗余较小
如果我们忽视这个问题,则可能引起相关的功能数据分布在各个不同的系统中,大量的原始数据需要调用,大量的中间结果需要保存和传递,大量计算工作将要重复进行。从而使得程序结构紊乱,数据冗余,不但给软件编制工作带来很大的困难,而且系统的工作效率也大大降低了。
④子系统的设置应考虑今后管理发展的需要
子系统的设置光靠上述系统分析的结果是不够的,因为现存的系统由于这样或那样的原因,很可能都没有考虑到一些高层次管理决策的要求。为了适应现代管理的发展,对于老系统的这些缺陷,在新系统的研制过程中应设法将它补上。只有这样才能使系统实现以后不但能够更准确、更合理地完成现存系统的业务,而且还可以支持更高层次、更深一步的管理决策。
⑤子系统的划分应便于系统分阶段实现
信息系统的开发是一项大的工程,它的实现一般都要分期分步进行。所以子系统的划分应该考虑到这种要求,适应这种分期分步的实施。另外,子系统的划分还必须兼顾组织机构的要求(但又不能完全依赖于组织,因为目前正在进行体制改革,组织结构相对来说是不稳定的),以便系统实现后能够符合现有的情况和人们的习惯,更好地运行。
(2)系统划分方法分类
有关系统的划分目前有如下几种,如表7.4-1所示。
表7.4-1 模块划分方法比较
2.系统设备配置与机器选型
在信息系统的研制和运行过程中,计算机是一个贯穿始终的工具,是系统赖以生存的物质基础。所以我们在确定机型时必须慎重考虑。
目前在确定计算机机型问题上有两种不好的倾向,应该特别引起注意。
第一,先买机器,后作系统分析与设计。结果造成不是机器为实现系统服务,而是系统为应付工具的运行服务。这种现象在我国尤为严重。据统计,1982年初,全国装机2万多台,1983年装机猛增至几十万台。这些计算机的实际运行情况如何呢?有人作过一些抽查,其中绝大部分机器买来后,运行量严重不足,损失是很惨重的。它不但造成资金积压,现有的设备不能发挥效益,而且造成人们对信息系统的怀疑,使得计算机应用大起大落。
所以说,信息系统的研制工作一定要先作系统分析,根据分析了解的具体情况来决定系统的配置,再购买计算机。
第二,一味的贪大、求先进,把技术上的可行性建立在不成熟的时髦机型上。现代计算机技术日新月异,各种硬件设备和软件工具层出不穷。所以在系统研制过程中切不可一味的追求最新的机器和刚研制出来的各种软硬件工具。我们强调要采用先进的软件工具和性能价格比较优越的机型,为系统的开发创造一个良好的环境。但是这一切又必须是建筑在技术成熟的基础之上。任何最先进的技术,如果我们消化不了,接受不了,那么这些东西对于我们将是无用的。况且新技术本身还有一个不断完善的过程。由此可见,在系统研制过程技术上的可行性,必须建立在已成熟、完善的基础之上,使用我们所熟悉的工具,把主要精力投入系统的分析与设计中。
(1)设备选配的依据
一般来说,设备选择与配置应根据实际情况来确定。即按系统分析各步骤调查研究的结果来考虑配置设备(包括软、硬件设备)。具体来说有如下几方面:
①总体方案。根据分析的结果确定将要开发的系统是采用集中式的方案,还是分布式,或者分布——集中式的方案。资金是一次性投入还是分期分批投入。若是后者,分几次投入,每次投入多少。
②容量。根据系统分析中所提供的数据存储容量总数,确定所要购置的机器需要配置多大的储存容量,其中软磁盘、硬磁盘、磁带的容量各为多少(主要指联机容量)。
③外设、终端或网络的配置。哪些地方需要挂网设置工作站,哪些地方只需要拉出一个终端就行了,等等。它包括的内容有:
a.网络与终端的分配。一般情况下,分析一个部门到底是应该设置网络工作站,还是拉终端,主要是看这个实际业务处理部门,有没有对信息独立加工处理的要求。即看是要独立处理数据呢,还是仅仅为主机输入输出数据
b.根据业务需要配置终端。即根据实际发生的业务考查,是否需要单独配置一个终端或工作站。如:对于日常流水作业的工作点必要为它配置一台终端设备。另外对于批处理性质的工作点,批处理每批业务量有多大,处理周期为多少?根据这些就可确定,哪些批处理业务可以合用一台终端或微型机,这些终端(或微型机)放在何处对使用最为有利。
c.根据业务的内容确定终端的位置。哪些地点只需要配有一般终端设备;哪些地点需要配置特殊设备;哪些地方需要配置绘图仪;哪些地方需要配置打印机等等。它们的使用频率如何,效果如何。
④速度。包括主机的运行速度,终端的速度和通讯速度。主机的速度,对于纯管理系统一般是足够的(但如果有过程控制子系统在内,就要具体考虑了)。I/O设备的速度,如针打在汉字(点阵)状态下,每分钟打多少行,能否满足业务的需求,是否要配激光打印机等等。网络的信息传递速度指信息传递频率是多少,每秒多少字节等等。
⑤软件。根据系统分析的结果应该配置哪些软件,并要指出这些软件(包)可支持什么样的软、硬件工具等等。
(2)设备(包括软硬件)选择的指标
在满足实际业务的前提下,只要资金许可,应尽量购置技术上成熟、性能价格比高的计算机系统。但是目前计算机技术发展太快,名目繁多,何谓好,何谓成熟,都很难笼统下结论。一般我们根据下列方面来评定:
①可靠性,技术上是否可靠。
②可维修性,维修是否很方便。
③兼容性,纵向:新老系统能否兼容;横向:本系统与外系统能否兼容。
④标准系列性,非标准的系列,不宜选取。
⑤熟悉性,是指用户对软件硬件的熟悉程度(或可开发程度)。
⑥方便性,使用是否方便。
⑦可扩充性,今后扩充系统或升档是否方便。
⑧对工作环境的要求。
⑨性能价格比。
(3)计算机硬件要考虑的指标
除上述(2)中所谈到软件、硬件的指标外,对计算机硬件本身的选择还应考虑如下指标:
①主机的结构。即是一般结构,还是优化自身处理命令RISC体系结构(如CDC公司的CD4000系列等)。
②主机的处理速度MIPS(Millions of Instructions Per Second)。
③相对机器性能价格指标CW(Computer World)。这是美国计算机世界杂志确定的一个衡量计算机性能价格的相对指标。它定义IBM360的CW指标为45,其它机器都与IBM360相比得出高于/低于45的指标数。
④内存的大小。
⑤I/O(输入/输出)通道数。
⑥系统的读写/存储周期。
⑦外设的速度。这是对计算机在管理(Business)领域中的应用来说比主机速度更为重要的。这样说有两方面原因:首先管理项目运算相对不是太复杂,但数据量大,读写频繁;其次目前计算机技术的发展是主机速度提高很快,而外设速度提高较慢,常常不配套。如1990年北京市场上推出的80386、80486型机器一般主机速度都在IBMPC XT的30-60倍以上,而所带硬盘的读写速度却只是IBMPC XT的2-4倍。
⑧高速缓存器的大小。
⑨向上升级是否方便
⑩计算机设备及其对工作环境的要求。
(4)软件考虑的指标。
除上面(2)中所考虑的指标外,软件的考虑必须与系统开发所采用的战略和方法学结合起来。在信息系统开发过程中开发方法以及相应软件工具的选择对系统开发是否顺利乃至能否成功,都是至关重要的。软件主要从如下几方面考虑:
①中文的使用。能否直接或间接的使用汉字,字库、字型、输入方式如何?对计算机在我国的应用是非常重要的。
②操作系统(OS Operating System)。OS目前有很多,如UNIX以及其变种(如XINIX等),MSDOS,AS等等。
③数据库系统DBS。数据系统有三种结构:层次型、网状型、关系型,前两者已不常用了。日常市面上的关系数据库系统有DB2,ORACLE,INF()MAX等等,在微机上运行的有dBASE-Ⅱ、Ⅲ、Ⅳ,Foxbase,Foxpro等等,另外很多公司还在RDB基础上推出了一些更高级的系统,如DEC公司的DRDBS(Distributed Relation Database System),IBM公司的K Base System(Knowledge Base System)等等。
④常用程序设计语言。如C;Pascal;BASIC;F()RTAN;COBOL;Ada;PL/1;LISP;PROLOG;M1;OPS5等等。 ⑤第4代程序生成语言4GLs(4th Generation Languages)。目前用4GLs等实现系统是一个方向,各公司机器上运行的4GLs工具极多,使用时可根据具体需要来选取。
⑥工具Tools或Utilities,如测试工具、需求分析工具、调试工具等等。
⑦应用系统开发环境。它代表了未来软件工程的发展方向。在这样一个环境和计算机自身的支持之下,用户可以很方便的完成从需求分析、系统分析到系统设计、系统实现和运行管理的全过程。
⑧图形软件。
⑨各种应用软件包,如统计分析软件包、多元分析软件包、数学规划软件包、运筹学软件包、预测分析软件包等等。
(5)网络指标
网络指标除(2)中所叙述的之外,还有如下指标:
①网络的结构(如总线、环型等)。
②网络的拓扑结构(如星型、网型、环型等)。
③网络的传输媒介(如光纤、同轴电缆等等)。
④各种接口(如网与其它系统之间连接的Gateway,与公共数据网连系的X.25等等)。
⑤网络管理软件(如分布式数据库系统、网络文件管理系统、网络自身安全保密系统和管理系统等等)。
⑥网络与其它OA(办公自动化)设备的连接等等。
(6)系统设备配置
考虑了上述种种因素后,我们常以表格的方式来描述系统设备配置情况。表格中必须注明机器设备的型号,各车间、科室的设备型号、数量,距计算机中心的距离,系统的分布情况,环境条件等等。
3.计算机处理流程
在确定了子系统的划分和系统的设备配置之后,还必须大体的勾画出每个子系统大致的计算机处理流程。我们用计算机处理流程图来表达其设计思想,说明信息在计算机中的流动、转换、存储和处理的情况。而不是描述处理细节。
(1)计算机流程图的绘制
计算机流程图的绘制可粗可细,一般来说在总体设计阶段它是较为粗略的,目的只需要绘出一个大致的形式即可。而在详细设计阶段就比较细致了,通常每个模块都画一张计算机流程图。
计算机流程图的绘制也很简单,几乎没有什么特殊的要求,只要将你头脑中构想的处理过程描述下来即可。例如一个工资系统的流程图,如图7.4-1所示。
图7.4-1 工资系统流程图
首先输入与本月工资有关的所有记录,然后校对、显示,读入工资记录、住房标准、工龄年限、互助会存款等等,经过处理后打印出各种扣除和实发工资单,并且修改互助会存款记录。于是一个工资处理过程的计算机流程图就绘制完了。