目录 |
信息系统设计也称为信息系统的物理设计,是在系统分析的基础上,将系统分析阶段反映用户需求的逻辑模型转换为可以具体实施的信息系统的物理模型,解决信息系统“怎么做”的问题。这一阶段要根据经济、技术和运行环境等方面的条件,详细地确定出新系统的结构,为信息系统的实施提供必要的技术方案。
经过系统分析,得到了新系统的逻辑模型,解决了系统要“做什么”的问题。而系统设计则是从系统的逻辑功能要求出发,根据实际条件,进行各种具体的设计,确定系统的实施方案,解决系统”怎么做”的问题。因此,系统设计是开发企业信息系统的重要环节。
这一阶段的主要任务是从信息系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的要求,并考虑到经济、技术条件、运行环境和进度要求等,确定系统的总体结构和系统各组成部分的技术方案,合理选择计算机和通信的软、硬件设备,制订系统的实施计划。
设计的主要目的就是为下一阶段的系统实现制定蓝图。系统分析阶段的工作重点在于了解情况、发现并描述问题,解决“做什么”的问题,设计阶段将重点研究“怎么做”的问题。因此在完成上述各项设计任务的过程中,需要权衡各种技术和实施方法的利弊,从全局出发,通过精心设计选择最合适的方案,合理地使用各种资源,最终描绘出新系统的详细设计方案。
系统设计是在系统分析的基础上由抽象到具体的过程,同时,还应该考虑到系统实现的内外环境和主客观条件。通常,系统设计阶段工作的主要依据可从以下几个方面考虑。
1)系统分析的成果。从工作流程来看,系统设计是系统分析的继续。因此,系统设计人员必须严格按照系统分析阶段的成果——“系统说明书”所规定的目标、任务和逻辑功能进行设计。对系统逻辑功能的充分理解是系统设计成功的关键。
2)现行技术。主要指可供选用的计算机硬件技术、软件技术、数据管理技术以及数据通信与计算机网络技术。
4)用户的使用要求。对系统的直接评判者是用户,新系统的设计应充分考虑、理解并尊重用户的个性化要求。特别是用户在操作使用方面的要求,如工作习惯、计算机使用技能、人因工程方面的要求等。尽可能方便用户的操作和使用。
5)系统运行环境。新系统既要匹配企业组织现行的管理水平、管理模式和方法,又要适应组织的变革与发展的需要,促进管理水平的提高。也就是说.要符合当前需要。适应系统的工作环境,如基础设施的配置情况、直接用户的空间分布情况、工作地的自然条件及安全保密方面的要求等。在系统设计中还应考虑现行系统的硬、软件状况和管理与技术环境的发展趋势,在新系统的技术方案中既要尽可能保护已有投资,又要有较强的应变能力,以适应未来的发展。
系统设计阶段的工作是一项技术性强、涉及面广的活动。设计内容包括两个方面:总体设计和各部分的详细设计(物理设计)。在此基础上,完成系统设计说明书的编制,制订出系统的实施计划。
1)系统总体设计。其中包括:系统总体布局方案的确定、软件系统总体结构的设计、数据存储的总体设计、计算机和网络系统方案的选择等。
2)各部分的详细设计。其中包括:代码设计、数据库设计、人—机界面设计(包括输入设计、输出设计、人—机对话设计)、处理过程设计等。
3)系统实施进度与计划的制订。
4)“系统设计说明书”的编写。“系统设计说明书”是系统设计阶段的重要成果,它是指一系列系统设计的文档,这些文档阐述了系统设计的指导思想、采用的技术、方法和设计结果与要求。“系统设计说明书”是系统实施工作的主要依据。
自顶向下的结构化方法曾被广泛采用,现在的信息系统设计方法有了很大发展,即使如此,这一方法在一些应用系统开发,特别是中小规模的应用系统开发中仍然是一种常用的方法。结构化方法也吸收了其他方法的一些思想用于提高系统设计的效率和质量。例如,在局部环节上可使用原型方法、面向对象方法。采用“用例(Use Case)”来获取和理解系统的功能需求等。
面向对象分析的主要任务是分析问题空间的主要目标和功能,寻找存在的对象,分析这些对象的特征(属性)和职责(服务),以及对象问的关系,并由此产生一个完整表达系统需求的规格说明,即系统“做什么”的描述。面向对象设计的主要任务是将分析得到的需求进一步明确和细化,选用有效的设计样式(Design Pattern)优化对象结构,设计系统交互界面,设计数据库结构等。它强调的是对分析结果的完善和改良,产生一个指导面向对象编程的详细规格说明,即“怎么做”的描述。尽管理论上系统分析与系统设计有比较明显的区分,但面向对象方法与传统方法相比,一个显著的特点就是在各个阶段采用统一的表示模型,从分析到设计,以及后续的程序设计开发,模型的过渡是平滑的,不存在鸿沟。例如,在分析一个订单类的服务“计算总价”时仅仅描述的是一个动态行为,而做设计时则要定义该服务的详细接口,否则程序员将无法实现该项服务。
在面向对象方法中,阶段问的分工并不严格,对于简单的问题可能在分析过程中就直接完成了本属于设计阶段的任务。可以说,面向对象的分析与设计之间不存在严格的时间界限和内容分工,设计是对分析的细化和精华过程。
此外。随着软件工程技术的发展,一些新的设计思想被逐步引入到系统的设计当中,形成了一些新的设计方法,如基于体系结构的系统设计。
信息系统设计的任务是将信息系统的逻辑模型转化为物理模型。信息系统设计应遵循以下原则。
(1)系统性原则。信息系统设计要从整个系统的角度进行考虑,系统代码要统一,设计标准要规范,传递语言要一致,实现数据或信息全局共享,提高数据重用性。
(2)灵活性原则。为了维持较长的信息系统生命周期,要求系统具有很好的环境适应性。为此,信息系统应具有较好的开放性和结构的可变性。在信息系统设计中,应尽量采用模块化结构,提高数据、程序模块的独立性,这样,既便于模块的修改,又便于增加新的内容,提高信息系统适应环境变化的能力。
(3)可靠性原则。是指信息系统抗干扰的能力及受外界干扰时的恢复能力。一个成功的信息系统必须具有较高的可靠性,如安全保密性、检错及纠错能力、抗病毒能力等。
(4)经济性原则。是指在满足系统需求的前提下,尽量节约成本。一方面,在硬件投资上不能盲目追求技术上的先进,而应以满足应用需要为前提。另一方面,信息系统设计中应尽量避免不必要的复杂化,各模块应尽量简洁,以便缩短处理流程、减少处理费用。
对系统设计方案要进行评价,没有达到设计标准的方案应当发回重做,而不是因为采用了迭代式开发,就可以纵容设计的缺失和混乱。将不良设计结果带人下一个开发阶段将会大大延长工期,因为在系统实施阶段发现设计缺陷往往是在做了大量无用功之后。虽然重构技术可以帮助修正设计阶段的问题,但无论对于新手还是有经验的开发人员来说,大规模重构都是成本高昂且令人望而生畏的举动。不良的功能设计正是造成大规模重构的首要原因之一,而且大规模的重构对于保持设计文档和程序代码框架的同步是非常不利的,甚至可能导致前期设计文档彻底作废,因此,必须严格审查功能设计的结果,即“磨刀不误砍柴工”。
功能设计的评价标准和设计质量息息相关,主要包括以下几个方面。
必须保证对分析阶段提出的所有功能和任务都进行了正确的功能设计,这是对设计结果的最低要求。设计的正确与否主要由有经验的分析人员评估确定,评估的重点是经过设计阶段对系统进行分解之后,原来分析阶段的业务逻辑是否仍然可以正确执行。正确性评估往往不是一次完成的,在生成和编写源程序代码并运行测试的过程中,一般总能发现设计中的缺陷甚至是错误。功能设计中的正确性要求就是在较高层次上力求设计结果(设计框架)不存在重大错误,否则后面的迭代将非常困难。
设计阶段的完整性要求主要包括两个方面:结构的完整性和组成部分的完整性。结构的完整性是指必须对整个系统的各个方面都做出设计,不能有遗漏;组成部分的完整性是指各个组成部分应该含义清晰,责任明确。严格遵守面向对象设计中的封装原则可以避免过多暴露细节,进而有助于完整性的实现。
设计中应该利用标准化的设计工具(如UML设计工具),尽可能采用各种常见或已经成功应用过的设计模式,避免使用不规范甚至是怪异的设计方案;同时,应当尽可能利用一切可利用的组件,减少重复开发。只有经过检验的,才是可靠的。
类是面向对象系统开发的基础,因此在系统设计工作中需要特别注意。类设计的合理构造涉及类是否明确定义,类和类的关系是否清晰以及类的粒度是否合适等。所谓“合理”并没有一个绝对的标准,绝大多数情况下是依靠分析和设计人员自身的开发经验加以判断的。
接口设计是面向对象设计中的一个非常重要的任务,同时也是最困难的任务之一。分析阶段基本不会考虑物理接口问题,而将此项工作交由设计阶段来完成。接口定义要本着宁缺毋滥的原则,可以私有的接口绝不设为公有。接口的命名要反复推敲,既要准确达意,又要尽可能简化;同时,还需要注意接口方法的具体参数选择。
设计图表和文档是帮助其他开发人员理解系统的最好手段之一,应尽可能完备且留有历史记录,以便于回溯。在对设计方案进行评价时,对于一些重要的或规模比较大的设计,可以根据实际项目的具体要求和特点给各评价指标赋予不同的权重,然后由有经验的设计员和分析员为方案评分;对于一般的或局部的设计,则可以由设计人员根据经验自行确定。