房地产信息管理第五章系统实施、维护与评价系统分析与系统设计阶段的工作完成以后,开发人员的工作重点就从分析、设计阶段转入实践阶段。在此期间,将投入大量的人力、物力及占用较长的时间进行程序设计、程序和系统调试、人员培训、系统转换及系统评价等一系列工作,称之为系统实施。第一节程序设计第二节调试第三节编写系统说明文件第四节系统转换第五节系统维护第六节系统评价第一节程序设计一、编程方法介绍二、程序设计语言的选择三、程序设计的风格四、程序设计的技巧五、管理信息系统的基本程序模块一、编程方法介绍用计算机对任何问题进行求解,都要把问题转化成计算机能够识别的语言程序,即进行程序设计。程序设计方法指的是按一定的规则书写程序结构,研究的是程序设计的有关原则和方法。1结构化程序设计方法目前软件设计中,广泛采用结构化程序设计方法,这是一种公认的较好的程序设计方法。其主要思想可以概括为:自顶向下、逐步求精和模块化。结构化程序设计方法是一种面向数据处理过程的方法,它把数据和过程分离为相互独立的实体。而面向对象的程序设计方法是在本质上不同于结构化方法的一种新方法。面向对象程序设计既吸取了结构化方法的优点,又考虑了现实世界与对象空间的映射关系。2面向对象的程序设计方法面向对象的基本程序结构被称为对象。面向对象方法将客观世界看成由许多不同种类的对象构成的。每个对象都有自己的内部状态和内部运动规律,不同的对象之间相互联系相互作用,构成了完整的客观世界。通常用数据描述对象的内部状态,并规定了对数据的操作。当对象接受到其他对象发送来的消息时,可进行相应的操作,从而改变其内部状态。性质相同的对象称为类。类具有封装性、继承性和多态性。程序员在程序设计时,将所要解决的问题分解为若干个类和对象,定义对象的属性和功能,再用消息来描述对象之间的相互联系。将问题中相互联系、相互作用的实体用对象和消息在程序中反映出来,这就是面向对象程序设计方法的主要思想。现在已经有多种语言支持面向对象的程序设计方法。而且每种语言都有完善的软件开发工具。面向对象的设计方法具有抽象性,可重用性等特点。在今后的程序设计中将逐步占据主导地位。3.C/S结构和B/S结构随着网络技术,特别是国际互联网技术的发展,计算机的应用已经从单机环境发展到网络上的应用。越来越多的软件要求在网络环境下运行。管理信息系统也经历了从单机向网络环境发展的过程。更多的管理信息系统是在网络环境下实现信息的收集、传递和加工等功能的。管理信息系统的软件结构应充分考虑到在网络环境下的运行效率、可扩展性和可维护性等指标。即使最初开发的系统不需要在网络环境下运行,也应考虑到将来系统扩展或向网络环境移植的可行性。在系统实现阶段,选择程序设计方法和程序设计语言时都应考虑到系统的运行环境和移植的问题。3.C/S结构和B/S结构目前,应用比较多的网络化软件结构有C/S结构和B/S结构两种。某些情况下,B/S结构具有比C/S结构更好的优势,但在某些情况下,C/S的特殊优势还无法被取代。很多情况下,B/S和C/S需要协同使用.3.C/S结构和B/S结构C/S结构指的是客户机∕服务器(Client/Server)模式的软件结构。产生于九十年代前期,当时是局域网环境中MIS应用系统的主流结构。应用程序分为服务器端程序和客户机端程序。服务器程序负责管理数据资源(如数据库等),并接受客户机的服务请求(如数据的查询或更新等),向客户机提供所需的数据或服务。客户机程序面向用户,接受用户的应用请求,并通过一定的协议或接口与服务器进行通信,将服务器提供的数据等资源经过处理后提供给用户。ClientNetworkDBServer3.C/S结构和B/S结构C/S结构能够通过网络环境完成数据资源的共享,适合管理信息系统的一般应用,并且系统的开发费用较低、开发周期短。同时,它也存在很多的缺点。使得C/S结构的应用受到了很大的限制。1)C/S结构只能适用于中、小规模的局域网。对于大规模的局域网和广域网就不能胜任了。这就限制了这种软件结构的普遍适用性。2)当局域网中的用户数量增加,频繁访问服务器中的数据资源时,服务器的负载急剧增加。系统性能明显下降。3)由于C/S结构的应用程序存在于服务器端和客户机端,并且二者要协同工作。这就给系统的维护工作带来了很多麻烦。通常在对应用程序进行修改、升级时,必须同时对两端的应用程序做出相应的修改,还要更新所有客户端的应用程序。使系统管理和维护工作难以进行。3.C/S结构和B/S结构B/S结构指的是浏览器∕服务器(Client/Server)模式的软件结构:由于Web技术迅速发展,C/S体系结构由单一的两个层次,扩展到由表示层(Browser)、功能层(WebServer)与数据库服务层(DBServer)构成的三层分布式结构,简称浏览器∕服务器(Browser/Server,B/S)模式的软件结构。B/S结构采用Internet/Intranet技术,使用统一的通信协议TCP/IP和统一的基于Web浏览器的用户界面,适用于广域网环境。一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,这种结构通常设有数据库服务器、Web服务器、应用服务器等。应用程序主要存放在服务器中,客户端只需要配置标准的浏览器。networkDatabaseWebServerAppServer浏览器3.C/S结构和B/S结构由于B/S结构采用Internet/Intranet技术,以TCP/IP作为通信协议,可以适用于局域网和广域网环境,具有普遍适用性。由于客户端都是标准的浏览器,各服务器分工明确,所以,整个系统易于扩展,容易管理。业务逻辑在服务器端实现,在变化时只要修改服务器端即可,易于维护由于业务逻辑都在服务器端实现,容易造成服务器端负荷过大二、程序设计语言的选择自60年代以来已出现了数千种不同的程序设计语言,其中有一小部分得到了广泛的应用。随着计算机技术的发展和对计算机软件需求的不断增长,程序设计语言也不断更新换代。开发人员所能够使用的程序设计语言越来越多,从中选择一种合适的语言就显得尤为重要。程序设计语言的选择直接关系到新系统的质量。程序员应该了解各种常用高级语言的特点,掌握选择语言的标准,以便根据问题的需要,合理地选择适当的程序设计语言。语言的结构化机制与数据管理能力语言可提供的交互功能有较丰富的软件工具开发人员的熟练程度软件可移植性要求系统用户的要求常用以下几项作为语言选择的标准1)应用领域每种语言都有自己的适用领域。FORTRAN适用于科学领域;C语言适用于系统软件的开发;汇编语言适用于系统软件的开发或实时处理程序.一般的通用语言都具有进行简单的计算和事务处理能力。2)运行环境新系统的运行环境包括硬件环境和软件环境。硬件环境是指计算机的处理速度、硬盘空间、显示器的分辨率、外部设备的配备情况等。对于档次较低的计算机只能使用对硬件要求不高的语言。同时还要考虑到该语言在今后硬件升级时,是否容易用更好的语言对程序进行改写。软件环境是指新系统在运行时所需要的支持软件。如操作系统、软件开发工具等。3)程序员是否熟悉程序设计中应选用有发展前途的语言,但也不能一味追求流行的语言。要根据程序员的知识结构,若能在短时间内熟悉一门新语言,则应选用公认的好语言。否则应优先选用程序员比较熟悉的语言。另外,在语言的选择中还要考虑计算的复杂性,执行效率等。MASMBasic/TrueBasic/TurboBasic/VisualBasicFortranPascal/TurboPascal/DelphiC/C++/TurboC/BorlandC/MSC/VC/BCBJava/Asp/Jsp/PHP.NET(VC.Net,VB.Net,C#,J#…)dBase/FoxPro/VFPInfomix/DB2/Oracle/SQLServer…PowerBuilderAutoCADMicroStationGeoMediaMapInfo/MapX/MapXtremeArcView/MapObjects/ArcObjects/ArcMap/ArcSDE/MOIMS/ArcIMS…SuperMap/SuperMapIS/三、程序设计的风格结构化程序设计的基本思想是按由顶向下逐步细化的方式,由三种标准控制结构(顺序、选择、循环)反复嵌套来构造一个程序。大多数高级语言都支持结构化程序设计方法。用该方法产生的程序由许多“块”组成,每个模块只有一个入口和一个出口,程序中一般没有GOTO语句,这种程序称为结构化程序,结构化程序有易于阅读和维护的优点。由于程序的可读性对于软件质量有重要影响,因此在程序设计过程中应当充分重视。为了提高程序的可读性,在编程风格方面应注意以下几点;注释书写格式变量名慎用Goto1.程序的注释注释原则上可以出现在程序中的任何位置,但是如果使注释和程序的结构配合起来则效果更好。注释一般分为两类;序言性注释描述性注释序言性注释出现在模块的首部,内容应包括:模块功能说明;界面描述(如调用语句格式、所有参数的解释和该模块需调用的模块名等);某些重要变量的使用、限制;开发信息(如作者、复查日期、修改日期等)。描述性注释嵌在程序之中,用来说明程序段的功能或数据的状态。书写注释时应注意:(1)注释应和程序一致,修改程序时应同时修改注释。(2)注释应提供一些程序本身难以表达的信息。(3)为了方便用户今后维护,注释中尽量多用汉字。2.程序的书写格式结构化程序设计中一般采用所谓“缩排法”来写程序,即把同一层次的语句行左端对齐,而下一层的语句则向右边缩进若干格书写,它能体现程序逻辑结构的深度。此外,在程序段与段之间,程序与注释行之间安排空白行,也有助于阅读。3.变量名的选择变量是由程序员在程序中定义的一些符号,虽然变量名称原则上是在一定规则内由程序员任意定义的,但不主张使用类似于a、b、a1、b1等这样的变量名,变量的命名应选用一些有实际意义的名词。例如将数据库学生字段的结构定义为如下形式:s(c,n,x,s)。在没有任何说明的情况下,几乎无法知道这个数据库字段的确切含义。但若把该数据库的字段改写为:s(code,name,sex,score),则几乎无需什么说明就能知道字段所代表的含义。变量名应适当选取,使其直观、易于理解和记忆。①采用有实际意义的变量名;②不用过于相似的变量名;③同一变量名不要具有多种含义。此外,在编程前最好能对变量名的选取约定统一的标准,以后阅读理解就会方便得多。例如,以i,f,c,s等作变量前缀分别表示该变量的类型,如以下变量:iTempfTempcTempsTemp4.慎重使用GOTO语句使用GOTO语句将引起程序的控制路径迂回曲折,使程序难以理解。在Basic、C等语言中仍保留了GOTO关键字,使用时注意:(1)要避免不必要的GOTO;(2)在迫不得已使用GOTO时,则不要使GOTO相互交叉。四、程序设计的技巧程序设计的主要目的是解决问题,为了更好地解决问题,在进行程序设计过程中应该掌握一定的程序设计技巧,包括对系统分析与设计的充分理解,熟练运用编程语言,综合运用文字、声音、图像,并彼此协调。应能对所用算法进行优化,使程序有较高的效率。1.选择好的算法2.算法的优化3.充分利用语言特点4.模块化与重复使用1.选择好的算法算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。一个算法应该具有以下五个重要的特征:①有穷性:一个算法必须保证执行有限步之后结束;②确切性:算法的每一步骤必须有确切的定义;③可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。④输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身限定了初始条件;⑤输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;算法是程序设计的灵魂。可以说,无论是在结构化程序设计中,还是在面向对象的程序