首页 理论教育 信息系统开发方法的分析介绍

信息系统开发方法的分析介绍

时间:2022-11-04 理论教育 版权反馈
【摘要】:结构化方法的缺点是开发周期漫长,过程繁琐,不能充分预料可能发生的情况及变化。信息技术的迅速发展使信息系统更新的速度越来越快,企业对系统开发时间的要求也更严格,迫切希望信息系统开发的速度要快、成本要低,这使得结构化方法存在的缺陷日益突出。20世纪80年代中期,原型法得到了广泛的应用,成为一种流行的信息系统开发方法。

8.2.3 信息系统开发方法

信息系统开发方法是基于信息系统开发规律来组织、构造和管理信息系统的,包括人们的思维方法、指导策略、技术途径、活动规则及步骤。抽象思维和形象思维方法是系统开发方法的基本思想;概括与划分、归纳与演绎是系统开发使用的基本逻辑方法。从工程技术角度分析,较有影响的系统开发方法有:结构化生命周期法、原型化方法、面向对象方法、CASE方法等。此外,还有分别适合于不同开发阶段的方法,如用于系统分析的软件需求工程法、形式描述法,用于系统设计的HIPO方法、Warnier-Orr方法和Jackson方法,用于系统实现的数据控制及动态分析法等。这些开发方法是不断发展变化的,多数情况下是综合运用各种方法。

(1)结构化生命周期法

结构化生命周期法是一种最常用的信息系统开发方法,又称为结构化开发方法,或者瀑布开发法。20世纪70年代,信息系统开发过程中普遍存在着需求不清、步骤混乱和成功率低等问题,人们通过总结经验教训,认识到信息系统的开发是一项投入大、历时长、涉及面广、影响因素众多的系统工程,必须用系统理论来指导信息系统的开发过程。在这样的背景下,结构化生命周期法应运而生,是最早、最传统的系统开发方法。

结构化开发方法的基本思想是,在系统分析与设计阶段是自顶向下,逐层分解。它把分析与设计看做是按一定的逻辑联系逐层分解的求解过程,从而能有效地将一个复杂的、难以描述和处理的抽象系统逐步分解成若干层次易于控制和处理的子系统,直到能被有效定义和处理的具体模块。这些模块内部由顺序、分支、循环基本控制结构组成,功能相对独立接口简明,界面清晰,使用和维护方便。由此,形成了开发对象的概念模型。在系统实现阶段,则是自底向上,通过模块链接形成完整的信息系统。开发过程严格按照系统分析、系统设计、系统实现等流程去开发。

信息系统分析与设计是结构化方法最关键的两个时期,其主要任务是分析系统的功能、性能、目标、规模等需求,定义系统的逻辑模型;设计系统的模块结构、数据文件等;给出模块说明和主要算法;为以后的编码实现进行算法上和结构上的准备。结构化分析的工具包括数据分析工具和功能分析工具两种。前者有数据流图、数据字典、数据存储规范化、数据立即存取图,后者主要有决策树、决策表和结构化语言。

结构化方法的主要优点是设计方法结构化,严格区分各个开发阶段,每个阶段都有明确的任务和目标,后一阶段的工作总是建立在前一阶段工作的基础上,从而使每一阶段工作都有可靠的依据,避免开发过程的盲目状态,使系统开发的成功率得到提高。

结构化方法的缺点是开发周期漫长,过程繁琐,不能充分预料可能发生的情况及变化。该方法要求系统开发人员和用户在系统开发初期对整个系统的功能就要有全面、深刻的认识,并制定出每一阶段的计划和说明书。事实上,对于很多信息系统,用户要想在项目开发初期就非常清楚地陈述他们的需求几乎是不可能的,用户的需求随着对系统理解的加深会不断地完善与变化。用户需求定义方面的错误是信息系统开发中出现的后果最为严重的错误,因为错误形成得越早,对整个系统的影响就越严重。

(2)原型法

20世纪80年代,计算机软件技术快速发展,出现了关系数据库系统、第四代程序设计语言和各种功能强大的辅助系统开发工具。信息技术的迅速发展使信息系统更新的速度越来越快,企业对系统开发时间的要求也更严格,迫切希望信息系统开发的速度要快、成本要低,这使得结构化方法存在的缺陷日益突出。在这种背景下,一种新的信息系统开发方法——原型法(Prototyping Method,PM)产生。这是一种具有全新的设计思想和开发工具的系统开发方法,它摒弃了结构化方法中的那种必须一步一步地进行周密细致的调查分析,严格地区分开发步骤,并制作大量的文档,直到最后才能让用户看到结果的繁琐做法,而是一开始就凭借着系统开发人员对用户要求的理解,在强有力的软件环境的支持下,迅速给出一个具备一定功能的、可运行的系统原型,通过与用户反复协商修改,最终形成实际系统。20世纪80年代中期,原型法得到了广泛的应用,成为一种流行的信息系统开发方法。

所谓原型(Prototype),其本意是试验品、模型的意思。在原型法中,原型是指一个用于试验的、结构简单但已具备系统的基本功能的应用软件。原型法是指系统开发人员在初步了解用户的基础上,借助功能强大的辅助系统开发工具,快速开发一个原型(原始模型),并将其演示给用户,开发人员根据用户的意见和评价对这个原型进行修改,如此反复,逐步完善,直到用户完全满意为止。原型法的思想基础在于系统所有的需求并非都能首先定义,信息系统开发过程中大量反复是必要的,不可避免的,也是系统具有更强适应性所要求的。它没有严格遵循信息系统的生命周期进行开发与研制,也不如结构化方法那样注重对管理系统的全面、系统的详细调查与分析,而是本着系统开发人员对用户需求的理解,通过一个原型化设计环境和设计工具,先快速建立一个原型系统,然后对该原型系统进行反复修改、扩充和完善。

原型法的开发过程是:首先建立一个能反映用户主要需求的原型,让用户实际看见新系统的概貌,以便判断哪些功能符合要求、哪些需要改进,通过对原型的反复改进,最终建立符合用户要求的新系统。它的开发过程是分析、设计、编程、运行、评价的多次循环与不断演进。原型法的过程包含4个步骤:

①识别基本需求:收集对目标系统的基本需求。这些基本需求包括输入、输出信息,可能还有一些简单的过程,但基本不涉及编辑规则、安全问题或期末的处理。

②建立初始原型:在获得基本需求的基础上,着手建立一个初始原型。通常初始原型只包括用户界面。

③系统用户评价:这一阶段开始了真正的循环过程。当系统用户首次进入该阶段时,他们要对原型进行评价,并提出修改或添加意见。在返回第3阶段时,他们将对新原型进行再次评价。在此阶段中要尽可能让更多的系统用户参与是非常重要的,这将有助于解决在输入和操作过程等领域中存在的各种差异。

④修正和提高原型:在原型法的最后一个阶段中,要按照系统用户提出的意见修正和提高原型。在该阶段中,可对已有的原型进行修改并增加各种新要求。然后,再转到第3阶段,并由系统用户对原型进行评审。最后再试步骤4,进行修正,等等。

原型有两种类型,一种是原型最后成为运行系统,另一种是在运作系统蓝图后即废弃的原型。这两种原型的开发步骤可用图8-13表示。图中虚线以上的部分为第一种原型和第二种原型共同经过的开发步骤,虚线左侧为第一种原型独立经过的开发步骤,右侧为第二种原型独立经过的开发步骤。

原型法的主要优点是:开发周期短,系统开发效率高,费用相对较少;通过与用户的直接交流,使用户在参与中直接发现问题,及时得到用户反馈,减少设计错误;用户无需面对大量难以理解的文档,而是一个易于接受的原型系统,从而提高用户的满意程度;在迭代中完善的系统能及时适应迅速变化的环境。

原型法的主要缺点是:对开发工具和管理水平要求较高;对大型系统或复杂性高的系统,不经过系统分析和整体规划,想要由设计人员直接由屏幕一个一个地模拟是很困难的,因而对于大型系统和复杂系统不适用。

(3)面向对象方法

20世纪90年代,面向对象(Object-Oriented,OO)的技术和程序设计语言取得了巨大的成功,成为计算机领域中开发软件的主流技术,因而信息系统的开发更多地采用面向对象的程序设计语言和支持面向对象的数据库管理系统。传统的结构化方法把数据和过程作为相互独立的实体,不支持软件的可复用性和可维护性,而面向对象的技术把对象的属性(数据)和处理(方法)封装在一起,通过子类对父类的继承,使得软件便于维护和扩充,提高了软件的可复用性。

面向对象的开发方法规定了一套专门的术语,这些术语是我们理解这种方法的基础。

img212

图8-13 两种原型法的开发步骤

①对象(Object):客观世界中的任何事物都可以在一定前提下看作对象,要解决的问题不同,面向的对象也就不同。面向对象方法认为,每种对象都有各自的内部状态和运动规律,不同对象之间的相互联系和相互作用构成了不同的系统。对象是一个封闭体,它是由一组数据和施加于这些数据上的一组操作构成的,对象的本质就是数据与操作的封装。

②类(Class):类是面向对象的基本概念之一,类是具有相同属性的对象的集合。具有一致数据结构和行为(即操作)的对象抽象成类。类具有层次性,类的上层叫超类,类的下层叫子类,一个类可以有多个超类,也可以有多个子类。

③消息。消息是对象之间相互作用,相互协作的一种机制,对象之间的相互操作、调用和应答是通过发送消息到对象的外部接口来实施的。消息是为完成某些操作而向对象发送的命令和命令说明。系统可以简单地看做一个彼此通过传递消息而相互作用的对象集合。

④继承。继承是指一个类因承袭而具有另一类的能力和特征的机制,继承是面向对象法特有的机制,子类继承父类所定义的属性、操作和约束规则,并可有自己新的内容。

⑤封装。封装又称信息隐藏,把对象及对象的方法、操作的实现封闭在一起。对象的封装性是面向对象技术的一个重要的特征,这实际上是一种信息隐藏技术,使对象的使用者只能看到封装界面上的信息,对象的内部是隐藏的。

面向对象方法按系统开发的一般过程分为以下几个阶段:

①系统调查和需求分析。对系统将要面临的具体管理问题以及用户对系统开发的需求进行调查研究,即先弄清要干什么的问题。

②面向对象分析(OOA)。在系统调查资料的基础上,对面向对象方法所需的素材进行归类、分析和整理。它建立在对象及其属性、类及其成员、整体及其部分等概念之上,以对象及其交互关系为手段,将非形式化的需求说明表述为明确的软件系统需求。面向对象分析模型从对象模型、动态模型和功能模型三个侧面进行描述,主要有三大任务:其一是通过对问题空间的分析,识别出问题所涉及的对象、对象间的关系和服务,建立对象模型;其二是以对象模型为基础,完成相应需求描述;其三是对需求描述进一步作需求评审。OOA步骤为标识对象、标识结构、定义属性和定义服务。

③面向对象设计(OOD)。从OOA到OOD是一个逐渐扩充模型的过程。OOA模型反映问题域和系统任务,OOD模型则进一步反映需求的一种实现,即在OOA模型中,根据所应用的开发环境功能的强弱程度,填入和扩展有关实现方面的软件设计信息。OOD工作内容主要有主体部件设计和数据管理部件设计。

④面向对象编程(OOP)。OOP任务是实现OOD预定各对象应完成的功能,分为可视化设计和代码设计两个阶段。可视化设计阶段主要是进行用户界面设计,将系统所有功能与界面中的控制或菜单命令联系起来,即在某一界面对象(如表单)上集合功能所需的控件对象(如按钮、编辑框、标签等),设置各对象属性,布置窗口。代码设计阶段的主要任务是为对象编写所需要响应的事件代码,为对象发挥必要的功能,建立不同对象间的正确连接关系。

面向对象方法的主要优点是:以对象为基础,利用特定的软件工具直接完成对象客体的描述与软件结构之间的转换,解决了传统结构化开发方法中客观世界描述工具与软件结构不一致的问题,缩短了开发周期,解决了从分析和设计到软件模块多次转换的繁杂过程。

面向对象方法的主要缺点是:需要有一定的软件基础支持才可以应用,对大型的系统可能会造成系统结构不合理、各部分关系失调等问题。客观世界的对象五花八门,在系统分析阶段用这种方法进行抽象是比较困难的。在某些情况下,纯面向对象的模型不能很好地满足软件系统的要求,其实用性受到影响。

(4)计算机辅助软件工程(CASE)方法

计算机辅助软件工程(Computer-Aided Software Engineering,CASE)是一种支持整个软件开发生命周期的软件开发自动化技术,是一种从开发者的角度支持信息系统开发的计算机技术。CASE也被称为计算机辅助系统工程(Computer-Aided Systems Engineering,CASE)、计算机辅助软件环境(Computer-Aided Software Engineering,CASE)、计算机辅助系统环境(Computer-Aided Systems Environment,CASE)。

CASE的产生与软件工程的发展有着密切的关系,它是软件工程发展到一定时期的必然产物。长期以来,软件开发过程中一直存在许多问题,如软件的质量与用户的期望有较大的距离;不能按时完成软件系统开发等。由于软件开发周期长、效率低,软件产品交付用户使用时,用户的业务环境与需求可能已经发生了很大的变化。因此,“手工作坊”式的软件开发模式难以适应软件工业的发展需求。1968年,软件工程的概念被提出,其基本思想是把系统工程的原理应用到软件的开发和维护中,以期低成本、按计划和高效率地生产高质量的软件。20世纪60年代后期产生的软件工程完成了软件生产的第一次变革,由“手工作坊”方式向“工程化”方式转化,在软件开发过程中引入软件生存周期的思想和结构化软件开发方法,使软件开发存在的问题得到了明显的改观。但软件开发人员也逐步认识到,他们为用户的应用开发出各种各样的软件和信息系统,却没有支持软件人员自己使用的工具。因此,软件工作者利用计算机软件实现软件工程理论中的原理、方法和技术,提出了CASE的思想和方法。随着各种软件开发工具的出现,CASE技术也随之诞生。20世纪80年代后期产生的CASE技术完成了软件生产的第二次变革,由“工程化”方式转向“自动化”方式。

CASE方法并不是一种真正意义上的开发方法,严格来说,CASE只是一种开发环境而不是一种开发方法,它是对整个开发过程进行支持的一种技术。在实际开发一个系统的过程中,CASE必须依赖具体的开发方法,如结构化方法、原型法、面向对象方法等,为具体的开发方法提供开发环境,是一种支持开发的专门工具。CASE的功能是支持不同的开发方法;支持软件开发生命周期的各个阶段;具有文档出版功能和文字、图形编辑功能;支持开发信息资源共享[10]

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

我要反馈