首页 理论教育 程序设计方法-管理信息系统:

程序设计方法-管理信息系统:

时间:2023-07-25 理论教育 版权反馈
【摘要】:目前程序设计的方法大多是按照结构化方法、面向对象的方法进行。编程的目的是实现开发者在系统分析和系统设计中所提出的管理方法和处理构想,编程不是系统开发的目的。1.结构化程序设计方法应用软件的编程工作量极大,而且要经常维护、修改。

程序设计方法-管理信息系统:

目前程序设计的方法大多是按照结构化方法、面向对象的方法进行。在实际开发中应充分利用现有的软件工具,因为这样做不但可以减轻开发的工作量,而且还可以使得系统开发过程规范、功能强、易于维护和修改。

编程的目的是实现开发者在系统分析和系统设计中所提出的管理方法和处理构想,编程不是系统开发的目的。因此,在编程和实现中,尽量借用已有的程序和各种开发工具,尽快、尽好地实现系统,而不要在具体的编程和调试工作中花费过多的精力和时间。

1.结构化程序设计方法

应用软件的编程工作量极大,而且要经常维护、修改。如果编写程序不遵守正确的规律,就会给系统的开发、维护带来障碍。可以使用软件工程的思想,即利用工程化的方法,进行软件开发,通过建立软件工程环境来提高软件开发效率

(1)自顶向下的模块化设计

自顶向下的方法在系统分析和设计阶段都要使用。每个系统都是由功能模块构成的层次结构。底层的模块一般规模较小,功能较简单,完成系统某一方面的处理功能。在设计中使用自顶向下方法的目的在于一开始就能从总体上理解和把握整个系统,然后对于组成系统的各功能模块逐步求精,从而使整个程序保持良好的结构,提高软件开发的效率。

在模块化程序设计中应该注意:

①模块的独立

在系统中模块之间应尽可能的独立,减少模块间的耦合,即信息交互,以便于将模块作为一个独立子系统开发。

②模块大小划分要适当

模块中包含的子模块数要合适,既便于模块的单独开发,又便于系统重构

③模块功能要简单

底层模块一般应完成一项独立的、具体的处理任务,便于维护与修改。

④共享的功能模块应集中

对于可供共享的处理功能,应集中在一个上层模块中,供各模块应用。

(2)结构化程序设计方法

结构化程序设计的基本思想形成于20世纪70年代,其基本原则是:以自顶向下和逐步细化的思想,用一组单入口、单出口的基本控制结构和反复嵌套来进行程序设计,在程序中尽可能不采用条件转移(GOTO)语句。

按照结构化程序设计的原则,所有的程序都可以由顺序结构、选择结构和循环结构及其组合来实现。

①顺序结构

顺序结构是三类结构中最简单的结构,表示含有多个连续的处理步骤,按程序书写的先后顺序执行。如图7-1所示,处理过程从A到B顺序执行。

图7-1 顺序结构

②选择结构

选择结构可以分为单分支结构和多分支结构。

·单分支结构(IF-THEN-ELSE结构)。单分支结构就是根据某个逻辑表达式的取值决定选择两个处理过程中的一个。如图7-2所示,当逻辑表达式P的取值为“真”时执行A,为“假”时执行B。

图7-2 单分支选择结构

·多分支选择结构(CASE结构)。多分支结构是根据某个测试表达式的取值来决定选择多个不同的处理过程。如图7-3所示,在该结构中,首先测试表达式P的值,若P的值为P1,则执行S1,执行完备后从出口离开此结构;当P的值为其他值时,则执行其他相应的处理过程;若P的值没有任何与它匹配的值时,执行处理过程Sn+1。在多分支选择结构中执行且执行其中一个处理过程,不会执行两个或两个以上的处理过程。

(www.xing528.com)

图7-3 多分支选择结构

③循环结构

循环结构可以分为“当”型循环和“直到”型循环结构。

·“当”型循环(DO-WHILE)结构。“当”型循环结构表示当某个控制条件为“真”时,循环往复地执行某个处理过程。如图7-4所示。“当”型结构从入口处首先测试逻辑表达式P,如果P的取值为“真”,则执行处理过程S,然后再回到测试条件处;若P的取值为“假”,则从出口离开此循环结构。

图7-4 “当”型循环结构

·“直到”型循环(DO-UNTIL)结构。“直到”型循环结构与“当”型循环结构无本质区别,只是测试条件在处理过程之后进行,因此,“直到”型循环结构不管条件P为何值,都至少要执行一次处理过程S。如图7-5所示。

图7-5 “直到”型循环结构

顺序结构、选择结构和循环结构都有一个重要特征,就是只有一个入口和一个出口。用这种单入口、单出口的基本结构单位,易于实现结构间的嵌套,从而实现任何复杂的处理过程和算法,使程序既清晰又有条理。

2.面向对象程序设计方法

面向过程的程序设计已无法适应软件危机和应用系统不断膨胀的需求,随着20世纪70年代Smalltalk、Modula-2等面向对象的编程语言OOPL(Object Oriented Programming Language)的出现以及C++的发展成熟,面向对象的程序设计OOP(Object Oriented Programming)思想得到广泛的认同和普及。至20世纪90年代,各种程序语言和工具都引入了这一思想,其优越性使它成为这一时代软件产业的主体技术。下面简要介绍其特性:

(1)封装性

在OOP方法中,一个对象即是一个独立存在的实体,对象有各自的属性和行为,彼此以消息进行通信,对象的属性只能通过自己的行为来改变,实现了数据封装,这便是对象的封装性。

在OOP方法中一般以类(Class)来创建一个对象,类表现为一种数据结构,对外提供的界面包括一组数据以及操作这些数据的方法(函数和过程),而隐藏了内部实现的细节,对象操作者只需要了解该对象的界面即可。这样大大增加了模块化的程度,很好地实现了软件重用和信息隐藏。为了更好地保持安全性和独立性,类的部分数据可以定义为私有数据,其他类的对象或过程不能直接访问私有数据,而一般情况下利用消息机制向对象发送消息,对象所有类就需要定义对应的消息响应函数,主动接受消息并作处理。这也是OOPL的一大特点。

(2)继承性

相关对象在进行合并分类后,有可能出现共享某些性质,通过抽象后使多种相关对象表现为一定的组织层次,低层次的对象继承其高层次对象的特性,这便是对象的继承性。

类通过继承定义成不同的层次结构,将相关类的特点抽象出来作为父类,子类继承父类的结构和方法后,再定义各自特定的数据和操作,或者还可以通过重载将父类的某些特殊操作进行重新定义。继承一个单一的父类时叫单继承,如果有两个或者两个以上的父类则是多继承。这样做可以增强软件的重用性、精简程序、减少冗余代码,极大地提高程序开发和运行效率。

(3)多态性

对象的某一操作在不同的条件环境下可以实现不同的处理,产生不同的结果,这就是对象的多态性。

类的某些操作允许同一名称具有多种语义。OOPL的这些特点使程序员进行面向对象程序设计时与进行过程式的程序设计有很大不同,体现在以下这些方面:

①设计程序不采用顺序性的结构,而采用对象本身的属性与方法来解决问题。

②在解决问题的过程中,可以直接在对象中设计事件处理程序(接受事件消息),而不用调用子过程严格地按顺序执行,方便用户实现自由无顺序的操作。

③数据与程序不是分离的,数据是特定对象的数据,只有对象的函数或过程才能对数据进行处理,一个对象的函数或过程共享对象的数据,解决了因调用子程序出现大量数据传递的情况(如函数返回值和较多参数)。

④不用设计公用程序模块,特定方法下的公用模块很难再扩展为更复杂的处理方式,只需设计类就可以实现重用。类库中提供大量的基类,掌握它们后可以加快开发进程,开发小组还可以将自己设计的基类放入类库共享。

⑤OOPL非常适合于Windows环境下的程序开发,可以充分利用Windows的各种资源构造应用程序,这也需要程序员比较熟悉Windows。

3.尽量利用已有的工具和程序

尽量利用已有的软件工具包括两个方面:一方面是尽量利用目前计算机上已有的软件工具,来帮助完成编程工作。这样做一是较为规范;二是减少了编程过程中的许多麻烦,从而减少了编程的工作量;三是质量和功能都比自己编的要好很多。已有的系统软件工具有如前面所说的原型方法和面向对象方法。另一方面是充分利用本系统原有的程序或开发都能够借用的程序。例如,在待开发的系统中,如果有好几个子系统都要用到某个功能类似的模块(如菜单、报表等),尽量不要一个个去编程序,最好的方法是去编一个较好的(较为典型的)程序模块,然后拷贝几份,加上本系统特有的功能(如屏幕显示中的汉字等)和调用子程序名即可。这种做法把它称为结构化方法中的模块典型,后面的均为它生成的模块。总之以何种方式理解尽快地开发出实用的系统才是最为重要的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈