面向对象的系统分析和设计,就是把面向对象的方法运用到软件工程的分析和设计阶段,从而建立更加适应当今庞大而复杂系统的软件模型。分析和设计的具体任务是描述系统中的对象、对象的属性和操作、对象的动态特性、对象间的构造关系和映射关系以及通信关系,从而建立系统的静态结构和动态活动模型。这个模型在以后的设计和实现中没有质的变化,只有补充和完善,因而是一个稳定的模型。这种模型的稳定性,可以适应系列化的系统和实际运行系统的调整,使人员交流变得简单,使对象构件的重用程度大大提高。
在实现软件时,语言的选择是很重要的。笔者选择了目前在面向对象领域内应用最为广泛的C++语言,原因是:①它是最流行的语言;②它兼具C语言与面向对象风格,也适于进行科学计算,这对于今后专业软件设计语言的统一特别有帮助。
另外,编译环境的选择也很重要。就应用范围来讲,目前Microsoft公司的Visual C++6.0是比较理想的开发环境。基于这个环境的MFC(Microsoft Foundation Class)编程非常适合开发图形应用程序,其特点和优势在于:①编写代码更加容易;②MFC使用了Windows标准化的结构;③MFC应用程序框架的功能更加强大,且性能良好;④MFC编程能够最大限度地利用Windows平台下的图形资源,这是其他平台无法比拟的。所以,笔者在VC环境下,采用MFC编程技术,开发了基于Windows 9x/NT的三维弹粘塑性块体单元法分析软件系统WBlock的原型。在进行软件系统的整体设计时,根据块体单元法分析专业上的要求和MFC编程上的特点,相应地搭建了两套程序框架,即计算程序框架和应用程序框架。
一、计算程序框架
弹粘塑性块体单元法分析与有限单元法分析一样,也需要进行前处理、本体分析和后处理。根据面向对象程序设计的思想和方法,笔者将这三个功能相对独立的处理模块抽象为三个类,分别为CPreProc、CAnalysis和CPostProc。这些类的具体实现细节将在下一节中详述。将这三个模块类集成到WBlock软件系统中,即形成了软件的计算程序框架,其流程如图2-7-3所示。
二、应用程序框架
这里所说的应用程序框架指的是将图形应用程序中的文档与视图关联起来的某种结构,它是容纳上述各个计算模块的外壳,计算过程中的所有操作都将在该框架内实现。(www.xing528.com)
在进行应用程序框架的设计时,各个功能模块之间应满足低耦合度,各个模块内部应满足高内聚度,并尽可能地减低模块间接口的复杂性,以提高软件的可移植性。为了达到这种目的,采用MFC的“文档-视图”结构来组织软件系统将是非常合适的。该结构提供了一个连贯的框架来管理应用程序的数据和用户接口,将数据部分(文档)和用户接口部分(视图)分离,增加了软件开发的模块化特性和面向对象优势,从而简化了复杂的图形应用程序,并且使得程序更容易维护,更具有灵活性和可扩展性。
图2-7-3 块体单元法的计算程序框架
在“文档-视图”结构中,文档在概念上包括应用程序所操作的数据。它负责把数据存储并检索到一个永久性媒体中,在程序运行过程中充当了在同一个文档对象上打开的各种视图的同步代理。视图则是文档与终端用户连接的基本输入输出端口。作为输出设备,视图从文档中抽取相关的数据,或者把数据的一个恰当表示绘画到它的Windows窗口上。作为输入设备,视图典型地通过鼠标和键盘获取用户的行为,从而相应地更新文档对象。
采用“文档—视图”结构编制的程序,通常只有也只需一个默认的视图对象与文档对象关联。对于块体单元法分析软件来说,也可以按照这种方式来组织系统。但是这样一来,实现三维块体单元法分析的后置处理需要编写大量的视图操作和计算几何方面的代码。应用现成的商用可视化软件将大大减少工作量,并且能够获得更优质的处理效果。AVS软件强大的数据处理功能,将为三维环境中的数据可视化提供捷径。然而,AVS的可视化功能更多地体现在处理已有数据方面(后处理)。对于需要动态刷新数据的几何建模(前处理)来说,自主编制程序代码将更为有效和方便。因此,在块体单元法分析软件WBlock的系统设计中,笔者采用了特殊的“单文档-双视图”结构。前处理建模过程在一个MFC视图即前处理视图中通过OpenGL函数来绘制完成,而块体单元系统显示及后处理在另外的AVS图形显示视口即后处理视图中实现,这两个视图对象共用同一个文档对象中的数据。在此结构内封装块体单元分析的三个处理器,就形成了WBlock软件的应用程序框架(图2-7-4)。
图2-7-4 WBlock软件的应用程序框架
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。