系统开发的主要方法范例6篇

系统开发的主要方法

系统开发的主要方法范文1

1.1交通运输管理计算机信息网络系统开发的方法对于计算机信息网络系统的开发方法,主要包括结构化方法、原型法、面向对象法等。下面就以结构化方法为例,对系统开发进行详细的介绍。结构化系统的开发是现阶段发展最成熟、应用最广泛的管理信息系统开发方式,是将工程化系统开发技术、自上而下结构化方式、生命周期方法有机结合在一起的开发方法。具体的系统开发步骤体现在以下几个方面:(1)系统的规划阶段。在交通运输管理计算机信息网络系统开发项目确定前,根据开发具体的要求,对其进行初步的调查,制定明确的开发设计任务,并系统研究进行可行性评价。(2)系统分析阶段。在系统规划的基础上,需要对现行的交通运输管理系统进行全面的分析,并制定出合理的逻辑方案。在整个系统分析阶段,具体的工作包括系统调查、数据功能分析、开发系统定义等。(3)系统设计阶段。需要在系统分析的基础上,将制定的可行性的逻辑方案转变为实际的物理模型。具体就是根据系统功能,结合开发资金、规模、系统开发的复杂程度等,进行具体的设计。这一阶段,主要的设计内容包括模块、代码、输入输出、数据库、可靠性等方面的设计。(4)系统实现阶段。这一阶段是系统实践的阶段,就是将转换成功的物理模型用专用的硬件设备进行相关功能的测试。这一阶段,主要的工作内容包括程序设计、硬件设备转杯、数据收集、开发人员培训、系统开发升级。(5)系统维护阶段。在系统开发完成后,就需要投入具体的运行,从而也就进入了系统的维护阶段。在这一个阶段,系统维护根本目的就是保证系统能够始终保持在正常运行的状态下,同时也需要就是的对系统相关数据进行调整与修改,或者是添加数据,满足系统更新的需求。

1.2交通运输管理计算机信息网络系统开发的工具在交通运输管理计算机信息网络系统开发过程中,应用的开发工具主要分为以下几种类型:(1)语言编程工具。常见的语言编程工具包括BASIC语言、C语言、C++语言、Prolog语言、PL/I语言、COBOL语言等。这类编程语言针对性很强,能够提供程序设计中相关命令的集合,并且适用范围也很广,在系统功能模块编写中具有很强的应用能力。(2)数据库工具。数据库是计算机信息网络系统开发中必要的工具,承担着整个系统数据交换、传输的重任,是数据交换与传输的枢纽。现阶段,提供管理信息系统开发的数据库工具主要有XBase系统以及大型数据库系统。(3)程序生成工具;(4)面向对象工具。这类工具主要是与OOP开发对应的编程工具,主要包括smalltalk、C++等,具有很强的针对性,在使用过程中,需要与OOP方式相互配合使用。

2计算机信息网络系统在交通运输管理中的应用

该系统主要包括长途客运管理信息系统、出租汽车管理信息系统、货运管理信息系统、汽车维修管理信息系统及违章处理系统。它们是交通运输管理中的基石和核心。基本功能如下:(1)车辆户籍管理功能。户籍管理数据包括:客运、货运和汽车维修业户的户籍。从业户的户籍名称、地址、电话号码、通讯方式、经济性质、许可证号、主管单位、经营范围、车辆数、工商执照号、法人代表、车牌号、缴费情况、发动机号等系数字段信息建库,建立起业户基本情况登记台账,完成对业户开业、户籍变更、歇业、业户经营许可证、户籍信息查询、营运证打印等功能。还有营运线路、总客座数、各运输企业的详细资料等。(2)税费改革管理功能。可以动态地记录税费征收情况,应缴税费,应罚金额,实缴税费,实罚金额,交费时间,滞纳金的收取,顺延情况,票据打印,以及用IC卡减免。实现监控交费情况,随时调整市场管理力度。(3)稽查管理功能。随时将违章信息记录入库,计算机可以迅速做出分类、处理。它能反映出结案率,违章处理力度,以及市场秩序等。(4)报表业务功能。通过日报表、月报表和年终报表,及时准确地把握各个环节的信息,及时调整行业发展中的薄弱点。既规范了市场,又提高了市场竞争能力。且数据非常可靠。(5)系统的优点。为合理利用资源,本系统可采用电话定点拨号来传输数据的方式。另外它的安全性能优越,服务器装有两块硬盘,一块有故障马上跳到另一块硬盘上,人们通过主机就能明白硬盘的运行状态,及时纠正硬件故障。

3结束语

系统开发的主要方法范文2

关键词:产品上线流程 信息系统分析与设计 教学方法

中图分类号:G642 文献标识码:A 文章编号:1672-3791(2016)11(b)-0130-02

互联网产品上线的每个阶段都是由经验丰富人员来承担,减少了系统的支出,避免了项目的延期,保障产品按时上线。《信息系统分析与设计》课程主要重点讲解信息系统的总体规划、系统分析、系统设计、系统实现与测试、运行维护等阶段的工作原则、工作步骤、基本方法及开发文档,奠定学生在开发方法方面的理论基础,使学生掌握信息系统设计的规范化方法[1, 2]。可见该课程的内容就是学生日后从事互联网工作需要掌握的基本技能。因此,在信息系统分析与设计教学过程中按照该流程进行课程内容的设计,对于提升教学效果具有重要意义。

1 互联网产品上线流程

互联网公司产品上线流程大致分为6个阶段:需求阶段、设计阶段、开发阶段、功能演示阶段、测试阶段、阶段。依次详细介绍每个阶段的主要工作要点以及每个阶段主导人员和参与人员。

1.1 需求阶段

该阶段的主要工作要点由以下几个方面:产品部门提出需求,撰写需求文档、产品原型、产品目标文档;组织需求评审会议。会议参与人员主要包括:产品经理、开发工程师、测试工程师和至少一名架构师;需求评审通过之后,产品经理上传需求文档和产品原型到Confluence,后续的开发、测试都以Confluence文档为准。

1.2 设计阶段

组织设计评审会议。会议参与人员主要包括:产品经理、开发工程师、测试工程师和至少一名架构师;开发工程师根据需求文档撰写设计文档;开发工程师撰写类图、时序图、结构架构图。

1.3 开发阶段

此阶段只有开发工程师参与,该阶段的主要工作要点由以下几个方面:开发工程师实现各个模块的功能;开发工程师要进行充分的自测。

1.4 功能预演

此阶段是由开发工程师主导的:根据项目具体情况可拆分预演,主要防止开发对需求理解不一致的情况出现,组织功能预演会议,参与人员主要由项目组所有人员,也包括产品方、业务方参与。

1.5 测试阶段

测试准入:系统可运行,开发工程师Code Review完成;开发阶段相应文档齐全;功能预演完成;测试工程师编写测试计划;测试工程师编写测试用例、准备测试环境、部署应用、准备测试数据;测试完成,更新JIRA状态为“待上线”;邮件测试报告;测试完成。邮件发送至相关人员。

1.6 阶段

测试工程师和产品同事确认预范围,小范围内测版,供相应人员测试,测试没问题才可上线;测试工程师测试报告发出后,需发送上线申请邮件;上线完成后,需立即由自己发送全员邮件,准确告知上线更新内容、更新地址、下载方法等内容;临时取消上线;上线过程,中途终止;重大Bug紧急修复。

互联网公司的上线流程主要在于分阶段分人员进行产品进度的控制。每个阶段的职责划分明确,相互工作不仅不耦合又能很好地衔接。阶段的划分对于《信息系统分析与设计》课程内容的设计和教学具有重要的意义。采用多种教学方法来进行不同阶段的划分。

2 课程采取的教学方法

2.1 学生角色扮演教学法

在《信息系统分析与设计》的课程教学中,采用角色扮演模拟教学法,模拟信息系统开发生命周期的各个阶段。结合学生个人兴趣爱好以及掌握的专业技能,让学生在团队中扮演不同的角色。主要角色包括:产品经理、开发工程师、UI工程师、测试工程师、CTO等角色。CTO角色一般由任课老师担任,负责对整个教学过程中出现的各种需求问题的解释和总体协调管理的工作。该教学方法的主要优点为:学生可以体验各个角色所承担的责任和要掌握的技术;学生能够深入思考如何学习、学习什么以及为什么学习;学生能够根据自己的兴趣爱好具体深入学习某一方面的知识,从而成为某一方面的专家[3]。

2.2 大作业驱动下的教学法

大作业教学贯穿整个教学过程,整个学期的教学就是完成一个信息系统开发的一个大作业。学生在产品经理的需求引导下,自主式、探究式、团队式完成系统开发任务;从课程第一周开始,由4名同学组成一个小组,通过对一个实际的信息系统项目进行调查、分析、设计、开发、测试、上线。由一名同学承担产品经理的角色并撰写需求文档,一名同学承担开发工程师的职责进行系统设计,一名同学承担测试工程师的职责,保证信息系统的质量。一名同学承担UI工程师的职责,来为信息系统进行友好的界面设计。

2.3 讨论式教学法

在《信息系统分析与设计》的课程教学中,采用“讨论式”教学法。这是教师预留讨论题目,由学生分组讨论的一种互动式教学方法。让学生先思考,然后提出自己的解决方案,百家争鸣,让学生开阔思路,老师也能增加自己的知识面,一举多得[4]。

2.4 答辩式教学法

在教学最后一周,学生完成大作业之后,组织大作业的答辩,每组学生用PPT进行汇报。汇报内容:包括系统的展示、各个阶段的任务、职责以及问题和问题是如何解决的等各方面。充分调动学生学习的积极性、主动性和创造性。让学生借鉴其他同学是如何解决问题的,从而在思路上得到一些启发,以达到集思广益、开拓思路、鼓励创新的目的;总结归纳,对信息系统开发过程中好的思路进行系统归纳,肯定学生的努力和付出,同时也指出存在的不足,对于共性问题,及时解答并加以纠正。

3 结语

通过分析互联网产品上线阶段和流程,调整《信息系统分析与设计》课程的教学热点和重点,采用学生角色扮演教学法、大作业驱动下的教学法、讨论式教学法、答辩式教学法相结合来提升教学效果。同时也促进了教师科研业务。最重要的是将来学生从事互联网开发工作能够做到学以致用,学习和工作可以无缝对接,该教学方式和方法采用了两年多,学生们对课程的教学效果反响较好,同学们都找到了自己的切入点,从事不同的职业,在互联网大潮中发挥自己的作用。

⒖嘉南

[1]张建林,王锁柱,王瑞梅.应用型本科信息系统分析与设计教学改革实践[J].计算机教育,2010(5):2-4.

[2]邵莉,李清茂.ERwin在教学管理系统设计中的应用研究[J].攀枝花学院学报,2010(12):101-104.

系统开发的主要方法范文3

关键词:形式化方法;Z语言;业务基础软件平台;软件工程;装备管理

中图分类号:TP301.2 文献标识码:A

1 绪论

伴随武器装备建设的快速发展,装备管理流程化、规范化的迫切需要,装备管理信息系统在现代装备保障中的作用日益突出。为适应装备管理模式持续改革、装备管理业务不断升级的需要,装备管理信息系统软件必须持续升级快速更新。但由于软件规模增大、复杂度增加,开发进度严重滞后、经费失控、质量糟糕等问题十分突出,传统的开发方法已不能适应业务需求加速变化的形势需要。

解决和处理软件开发问题有两大方法。软件工程方法建立了多种软件开发过程模型,从不同角度解决软件开发问题,试图控制进度、成本,提高软件质量。但由于需求描述不清、理解有误而导致的改正成本成指数增加,开发问题积重难返。形式化方法[1]为准确描述需求提供了一种全新而有效的技术途径,但该方面的研究限于理论研究层面多,在实际工业项目的应用相对较少。

本文将形式化方法与软件工程化思想有机结合,以工作流引擎和规则引擎技术为支撑,基于Z语言构建了装备管理业务基础软件平台,通过形式化方法精确描述业务需求、业务基础平台加速软件开发进程、自动化测试提升软件质量,探索解决装备管理软件开发问题的途径。

2 研究现状及存在问题

软件开发问题主要分为理论方法和技术方法两大基本研究方向。技术方法以软件工程化研究为主,按照“软件工厂”模式提高软件生产效率,实用性很强,得到了产业界的广泛支持。随着软件的规模越来越大,复杂度越来越高,很难保证软件的可靠性和软件的开发效率。理论方法以形式化方法研究为主,目标是使系统具有较高的可信度和正确性,但实用性较差,难以投入实际应用。

2.1软件工程方法

1968年NATO提出“运用系统的、规范的和可定量的方法来开发、运行和维护软件”的工程化思想,主要包括方法、工具和过程三大要素。四十多年来,软件工程虽然取得丰硕成果,但进度安排和成本估算不准,需求不清、变动大,质量低、难维护等问题依然日益严重,软件需求、开发进度管理和软件质量已成为软件工程化面临的三个主要难题。

上世纪八十年代中期软件需求工程[2]被提出,Herb Krasner给出了需求工程五阶段生命周期的定义,Matthias Jarke和Klaus Pohl给出了需求工程包括获取、表示和验证三阶段的生命周期定义。需求工程逐渐成为研究热点问题之一。“基于知识的需求工程”[3]把AI (Artificial Intelligence,人工智能)技术应用到需求工程领域,具有一个知识库和推理机制,在此基础上进行需求分析,检测其活动。美国南加州大学开发的一个基于知识的需求检测工具QARCC。“形式化需求分析方法”[4]是使用一种形式化语言进行语言公式的形式推理,用于检查语法的良构性并证明某些属性,其主要优势在于可以减少二义性、提高准确性、为验证打好基础、允许对需求进行推理等。

为解决开发进度问题,软件设计方法方面的研究成果众多,可分为重量级方法和轻量级方法。重量级方法产生大量的正式文档,强调以开发过程为中心,主要包括ISO9000、CMM和统一软体开发过程(RUP)等。轻量级方法没有对大量正式文档的要求,主要包括“极限编程”和“敏捷流程”等。面向方面的程序设计(AOP)被认为是近年来另外一个重要发展方向。

为解决软件质量问题,以软件测试为主要研究方向取得飞速发展。统计表明:在典型的软件开发项目中,测试工作量往往占软件开发总工作量的40%以上[5]。软件测试阶段在整个软件开发周期中所占的比重日益增大。软件测试环境复杂、分析工作量大,手工测试效率低,自动化测试逐渐取代手工方式成为主流测试方法。自动化测试具有效率高、成本低、效果好、可以复用等优点。自动化测试工具主要有Robot、Winrunner和QACenter等。此外,采用形式化方法描述并证明软件需求形式化规格说明,通过程序正确性证明、形式化推理分析、模型检验等方法证明软件正确并提高软件的质量,但这些方法处于研究阶段较多,存在一定的局限性,还没有达到工程化应用要求,软件测试仍将是提高软件质量的重要方法。

2.2形式化方法

形式化方法(Formal Method)是建立在严格数学基础上的软件开发方法,以精确的语义描述软件系统,在此基础上进行自动生成、转化及验证。20世纪60年代“软件危机”以来,在推动软件工程化以外,形式化方法的研究及应用也取得了长足发展。

形式化方法通常可分为五类[6]:(1)基于模型的方法,如:Z、Object-Z、VDM、B等。(2) 代数方法,如:OBJ、Larch规约语言、CLEAR等。(3)过程代数方法,如:通信顺序过程CSP、通信系统演算CCS、通信过程代数(ACP)、计时CSP(TCSP)、时序排序规约语言(LOTOS)等。(4)基于逻辑的方法,如:时序逻辑、Hoare逻辑等。(5)基于网络的方法,如:Petri网、状态图等。

形式化方法的应用可分为三个层次[7]:形式规格说明、用形式化开发和形式化校验产生程序和完全使用机器校验的定理证明。形式化方法在开发大型软件系统和解决特殊问题等方面存在局限性,且缺乏工具支持,但形式化方法对于改进软件质量是十分重要的,一定会成为解决软件开发问题的有效途径之一。

2.3业务基础软件平台

信息管理系统复杂、业务需求变化频繁、工程量大。传统开发模式是在底层技术平台上直接构建系统,特点是编码式开发和一次性开发持续运行,因此导致软件僵化,业务组件无法重构,效率低下。现代开发模式要求按需求定制;组件化设计,实现软件复用;易调整,可配置,实现柔性设计;开放性架构与标准化接口,实现持续集成等。各类应用系统开发实践逐渐形成了基于平台的快速开发方法。业务基础软件平台[8]主要指以业务导向和驱动、可快速构建应用软件的开发平台,是业务管理类应用软件的通用基础平台,主要产品有:用友UAP、普元EOS、金蝶BOS、东软金算盘UP和E6,以及SAP NetWeaver等。

2.4Z语言

Z语言[9]是基于一阶谓词逻辑和集合论的形式规约说明语言,适合用于编写计算机系统规格说明,主要特点是:可推理和证明、是结构化的、可使用自然语言、和模型可求精实现,不足是缺乏关于计时或并发行为的描述能力。

Z语言形式规约是一个强类型系统。Z形式规约的数据类型可分为基本类型和复合类型。Z形式规约的构型主要包括抽象状态构型、操作构型、声明使用构型、谓词使用构型、重命名构型和类属构型等,其中最主要的是说明软件系统的状态构型和说明状态转化的操作构型。

构型由声明和谓词两部分组成,有水平和垂直两种表示形式。水平形式:[声明|谓词];垂直形式可理解性和可读性更强:

2.5存在的主要问题

可以看出,软件开发过程存在的主要问题包括:

(1)形式化方法在软件开发过程中的应用还不普及,对需求表述研究应用的多,对软件需求到软件代码自动化转换研究的少,进展不明显。

(2)业务基础平台的发展取得了很大进步,尤其以工作流技术为核心的平台实现了面向功能到面向业务过程的变化,针对业务规则的配置修改变得灵活了,但业务规则的提取依然复杂,软件开发过程依然很繁琐,自动化程度很低。

(3)形式化方法与业务基础平台的结合研究尚未开展,仍然没有两者良好结合的应用实例。

3 平台体系结构与设计

(1)Z语言的引入

业务基础软件平台将非功能性需求通过系统基础功能模块的形式实现,在统一的需求分析、设计开发和高强度产品级测试的基础上,对质量提供有力保证,并通过持续的更新升级以进一步提升质量。功能性需求受到装备发展、管理理念和思想的进步等因素影响,处于不断的变化发展之中。基于业务流程和业务规则的业务基础软件平台,将流程和规则与软件分离,具备流程自定义和规则自维护能力,提高了应对软件变化的能力。基于流程图和自然语言的业务需求描述不精确的问题依然存在,伴随需求的变化更新,错误的累积效应将放大显现。引入Z语言的形式化方法精确描述业务需求,形成与业务流程和业务规则的转换机制,将为解决软件开发问题提供一种新的方法途径。

(2)Z-EMP平台体系结构

Z-EMP平台设计理念是:针对功能性业务需求发展变化大、规则复杂,引入形式化方法消除需求的不确定性,通过求精转换技术,结合工作流引擎和规则引擎,形成可运行的系统业务功能;针对非功能性业务需求变化小、实现负杂,基于基础软件平台的系统公共功能,通过功能模块组合,形成可运行的系统公共功能。

Z-EMP平台综合运用工作流管理系统、商用智能和规则引擎等技术,通过形式化方法准确描述业务需求,求精转化为业务流程和业务规则,基于规则引擎和工作流引擎等运行平台运行,形成装备管理软件系统。

业务基础软件平台的体系结构如图1所示,分为用户接口层、引擎层、业务逻辑层和持久化层。用户接口层是一个软件平台最重要的组成之一,是用户和软件平台交流的媒介。引擎层是业务基础软件平台的核心,综合运用工作流引擎JBPM和规则引擎Droofs,协调调度业务流程和业务逻辑API接口。业务逻辑层是业务基础软件平台的业务支撑层,逐步固化和组合业务逻辑API接口供引擎层调度。持久化层通过对象关系映像技术ORM(Object/Realtional Mapper)来进行数据持久化。

(3)Z-EMP平台设计

Z-EMP平台包括四个部分:需求分析平台、快速开发平台、运行支撑平台和测试平台,从软件生命周期来看,涵盖了需求分析、设计、编码、测试、部署运营等多个阶段。 软件开发人员从输入形式化需求规格到完成测试整个软件开发过程的大部分工作均可提供支持。该平台的实现在满足快速开发和灵活定制需求的前提下,还应当注重实用性、经济性、可行性,因此应利用一些开源软件,在此基础上进一步扩展提升,为平台的开发提供支持。

平台的技术方案总体考虑如下:

(l)平台总体采用J2EE架构。J2EE具有跨平台、可伸缩、灵活、易维护等特点,作为平台的开发体系具有独特的优势。

(2)通用环境支持常用开源及商用数据库和服务器。通用环境支持是保证基于平台的应用快速完成开发、部署的重要基础,应该尽可能多的提供对这些服务器和数据库的支持,供用户按需配置。

(3)平台通用语言采用JAVA,接口和配置文件采用XML语言。

(4)平台开发工具以Eclipse为主,结合其他专用工具。基于Java、开源的Eclipse可扩展开发平台是主流的Java开发工具之一。Eclipse开发工具提供了主框架和一组服务,用于组件化构建开发环境,通过加入组件用户可无约束的扩展功能,这正好也符合了业务基础软件平台运行环境多变和功能特别复杂的需要。其他专用工具有Ant和FreeMaker扩展引擎开发工具和JDK、Tomcat和Mysql等基本运行环境专用软件。

3.4.1需求分析平台设计

需求分析平台通过对预置的形式化需求规范的扩展分析,以流程描述为基础,以基于Z语言的形式化需求描述为核心,提供完整的需求分析报告。图2给出了需求分析平台模块整体设计结构图。

需求分析平台用于设计开发人员与业务人员沟通交流业务需求并形成需求规范的一套工具组件,其基本工作流程是:

(1)获取分析业务对象,构建对象集。

(2)状态构型描述。

(3)获取分析业务操作,构建操作集。

(4)操作流程分析,操作构型描述。

(5)构建声明集,声明构型描述。

(6)构建谓词集,谓词构型描述。

(7)组合构型和框架构型描述。

(8)引用模板生成形式化需求文档。

(9)Z类型检查,形式化分析推理,修正形式化需求。

平台需求的形式化分析与设计主要将平台化装备管理需求通过形式化分析与设计形成形式化需求模板,将装备管理信息系统的功能需求抽象形成装备管理基础业务软件平台的通用需求,使用Z语言进行形式化描述,构成形式化需求模板的基础文件。形式化需求模板是Z-EMP需求分析平台的组成部分,由平台一同管理维护。用户使用平台进行信息系统的需求分析时,只在模板基础上,进一步分析描述特殊需求。

形式化需求模板引用的方法和主要内容。引用形式化需求模板时,用户只需选择引用形式化需求模板,即可将平台内建的形式化需求描述全部继承,并在此基础上,进一步进行需求分析和描述,并形成Z语言描述的形式化需求文档。Z语言编辑器采用Z/EVES2.1工具,遵循该编辑的符号规范。

3.4.2快速开发平台设计

快速开发平台包括布局定义、流程定义和规则抽取三大模块。布局定义模块通过布局定义设计应用系统的用户界面,并与后端处理的业务逻辑组件接口关联,形成基本的操作应用。流程定义模块通过业务流程的图形化定义,将孤立、单一的业务处理活动按照业务需求构造成业务活动流程,基于工作流引擎驱动流程的运行。规则抽取模块以形式化需求描述为基础,通过规则抽取与转换等一系列操作步骤,将业务规则固化形成规则库,基于规则引擎驱动业务规则的注入与运行。对一些特殊的业务规则和业务逻辑,开发用户应继续扩展编写有关代码,实现业务功能。规则抽取与应用依赖于规则引擎系统,采用开源Drools规则引擎系统实现规则注入、解析与应用等,是快速开发平台实现的关键技术问题。

快速开发分为引擎驱动和生成源代码两种基本模式。引擎模式是指通过开发平台设计出应用模板并到平台引擎,运行时,平台引擎驱动应用模板设计的相关业务操作,完成业务处理过程。生成源代码模式主要通过一个开发平台的设计器定义业务模块,辅助生成源代码框架,用户基于源代码框架继续编写、修改源代码实现业务逻辑。

本平台快速开发模式综合了两种基本模式的优点,以引擎模式实现装备管理业务流程、通用业务逻辑和业务规则的快速开发,以生成组件代码模式提供进一步修改业务逻辑组件的扩展接口,实现特殊业务逻辑的快速开发,大大提高了开发效率。

快速开发流程如图3所示。

3.4.3运行支撑平台设计

运行支撑平台也称为运行时框架,是应用系统运行的支撑环境,包括应用系统支持环境和数据支撑环境,主要包括:用户接口(界面层)组件、工作流引擎组件、规则引擎组件、业务逻辑组件、业务规则组件、持久化组件等,共同协作为应用系统的运行提供基础支持。

应用系统运行支撑环境基于Tomact6.0构建。为提高Z-EMP平台应用系统环境的适应性,应用系统设计时,一是自动继承服务器基础应用环境,二是要提供环境自定义接口,自主选择运行环境配置参数。

用户类型不同,对数据库的使用需求也将不同。数据支撑环境应支持不同的数据库系统,如Oracle、MS SQL server、DB2、Postgresql和Mysql等。此外,还应具有在不同类型的数据库系统之间实现迁移的能力。Z-EMP平台提供的数据库支持环境能够隐藏不同类型数据库系统之间的差别,对于平台来说数据库系统是透明的。

3.4.4测试平台设计

一个完善的自动化测试系统一般会包括:生成测试用例、测试用例接口、驱动被测软件程序、主控程序、记录出错步骤、bug库等,其中,生成测试用例模块是自动化测试系统的主要难点[10]。测试用例对达成测试目的来说是至关重要的。好的测试用例可以提高测试的质量和工作效率。可以说,生成完备的、恰当的测试用例是整个测试平台设计的重要内容。

测试平台设计依据形式化需求规格说明生成测试用例遵循状态覆盖准则和状态变迁覆盖准则。状态覆盖准则依据形式化需求规格说明,设计足够多的测试用例使的状态构型中的所有状态在测试用例套中至少出现一次。状态变迁覆盖准则依据形式化需求规格说明,设计足够多的测试用例保证抽象状态构型中的状态转换全部覆盖,或者说最少确保有一个测试用例能够覆盖测试状态转换过程一次。

测试平台测试基于形式化需求Z语言规格说明自动生成测试用例,主要分三步:

(1)预处理用Z语言描述的形式化规格说明,识别出输入变量和输出变量的约束条件,以及变量之间的约束关系,并简化转换成线性谓词。

(2)以线性谓词为基础转换为线性不等式组,求解线性不等式组以得到对应取值范围的边界极点。

(3)找出取值范围的边界附近的点,进行输出变量到输入变量的逆变换以最终得到测试用例。

4 平台应用实现与验证

Z-EMP平台是采用形式化方法和快速开发平台两种技术路线综合解决软件开发问题的研究型平台,将形式化方法和软件工程化方法有机结合,将形式化方法拓展延伸到了设计开发阶段,这一基本思路实现了快速开发平台的敏捷性与形式化方法的准确性统一。基于Z-EMP平台的软件开发是一种全新的软件开发新思维,开发流程如图4所示。

AA-MIS系统是装备全寿命管理信息系统,从装备筹措、储存、保管、维修、训练、使用到报废全业务过程,使用对象为机关和部队相关工作人员。该系统设计装备型号多、涉及保障单位分布广,业务复杂、专业性强等诸多特点,而且当前武器装备建设出于转型发展阶段,新装备新型号陆续装备部队。装备管理需求处于不断变化发展之中,基于传统开发模式开发的信息系统已经不适应当前使用需求,必须形成软件持续优化和快速服务能力以保证软件服务质量,有效完成装备效能化管理使命。

基于Z-EMP平台开发的AA-MIS系统主要完成了业务流程的图形化快速定义,适应业务流程的变化发展;业务规则复杂的质量控制模块的形式化描述,开发了质量控制整套逻辑接口组件,具备了基于平台快速实现形式化需求的能力;基于形式化需求辅助生成了部分测试用例,实际应用到系统的测试过程,尤其在逻辑覆盖测试上发挥了一定作用。AA-MIS系统的开发应用较好了验证了Z-EMP平台研究方向的正确性和平台实现的可能性。

5 总结

本文首先分析了软件工程和形式化方法的优势和不足,介绍了业务基础软件平台的思想,首次提出将形式化方法和Z语言引入到快速开发平台综合解决软件需求与开发的问题,给出了Z-EMP平台体系结构和总体设计,最后结合AA-MIS系统开发,验证了Z-EMP平台的研究方向和设计思想,Z-EMP平台适合作为装备管理业务基础软件平台持续开展研究,以解决装备管理信息系统软件开发问题。

由于客观原因,基于Z语言的业务基础平台的研究仅仅是一个初步的探索与尝试,许多认识与思考还很粗浅。在形式规范重用和Z语言工具等方面,需要进一步加强研究。

参考文献:

[1] 李莹,吴江琴.软件工程形式化方法与语言[M].杭州:浙江大学出版社,2010,3-4.

[2] 吴军华.软件工程—理论、方法与实践[M].西安:西安电子科技大学出版社,2010,1-17,58-73.

[3] Karl E. Wiegers.陆丽娜,等,译.软件需求(Software Requirements)[M].北京:机械工业出版社,2000,42-65.

[4] 夏建勋,唐红武.需求分析的Z语言形式化方法[J].科学技术与工程,2008,8(8):2245-2248.

[5] PATTON R.软件测试[M].北京:机械工业出版社,2002,1-96.

[6] Barroca L.M,Mcdermid J.A,Formal methods: Use and Relevance for The Development of Safety Critical Systems[J].The Computer Journal,1992,35:579-599.

[7] 蔡立志.基于形式化的软件测试复用若干关键技术的研究[D].上海大学,2009.

[8] 闫中玉.基于业务基础软件平台的企业建模方法的研究与应用[D].江苏大学,2007.

[9] 王宏生.Z形式规约的自动求精研究[M].北京:国防工业出版社,2009,15-16.

[10] 邹北骥,等.基于形式规约的软件测试用例自动生成技术研究[J].湖南大学学报(自然科学版),2004,31(3):81-85.

作者简介:

孙桂领(1980-),男,工程师,硕士.主要研究领域:形式化建模

与应用、软件工程、装备管理、信息系统与信息管理等.

系统开发的主要方法范文4

【关键词】计算机专业;嵌入式;教学

嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减的计算机系统,通俗地讲,就是具有智能处理功能的电子产品。如今,嵌入式系统已经被广泛应用于工业控制、医疗仪器、智能仪表、通信设备等众多领域,可以说,嵌入式系统无处不在,人们的生活也离不开嵌入式系统。

如今,社会对掌握嵌入式技术的人才需求量较大,近几年高校中的自动化类、电子类以及计算机类专业均开设了嵌入式系统的相关课程,社会上也有一些培训机构开始开展嵌入式工程师的培训。然而,由于面向对象、培养目标以及基础知识的不同,高校中各专业以及培训机构培养出的嵌入式人才的能力也不尽不同。本文结合嵌入式系统的体系结构和高校计算机专业的课程结构,对高校计算机专业嵌入式系统的教学现状、教学内容和教学方法展开探讨,指出现有教学过程中存在的不足之处,并提出相应的解决方案。

1. 嵌入式系统的体系结构

一个完整的嵌入式系统可以分为软件部分和硬件部分,因此,大体上讲,嵌入式工程师可以分为嵌入式软件工程师和嵌入式硬件工程师。但我们认为,一个合格的嵌入式工程师应该既要懂软件,又要懂硬件,软件和硬件之间是相辅相成的。

嵌入式软件包含应用程序开发、驱动程序开发、操作系统的移植和裁减三个主要方面。然而,并非所有的嵌入式系统都需要进行驱动程序的开发以及操作系统的移植和裁减,如果使用的单片机较为简单,或者开发的程序较为简单,那么就没有必要基于操作系统来进行应用程序的开发。但是,如果基于操作系统来开发应用程序,那么应用程序开发过程和普通的软件开发几乎没有区别。

嵌入式硬件主要包含PCB设计和原理图设计两个方面。在原理图设计阶段,工程师需要根据实际需求选择合适的芯片,设计相应的电路图;而PCB设计主要是指PCB的布局和布线。对于高频电路,在布线完成之后,还需要进行PCB电路图的电磁兼容仿真和分析,以保证生产出的产品能够正常工作。

由此可见,嵌入式系统开发涉及到的知识面较多,这对相应的从业人员提出了较高的要求,因此,要称为一名合格的嵌入式工程师必须对上述所有方面都有所了解,并精通其中若干个方面。

2. 高校计算机专业的课程结构

如今,高校计算机专业的课程结构除公共课外,可以分专业基础课程,专业必修课程和专业选修课程。专业基础课程主要是指电子技术基础和计算机程序设计;专业必修课程主要包括计算机体系结构、操作系统、数据结构、软件工程、计算机网络和编译原理等;专业选修课包括信息安全、图像处理、网络程序开发、嵌入式系统等。

从课程结构上,我们不难发现,该专业学生在学习嵌入式系统时存在一定难度,主要体现在对电路、数电和模电三门课程的掌握不牢固上。要想学好嵌入式系统,首先必须学好上述三门课程。而事实上,通常计算机专业将上述三门课程合成一门课程来进行讲授,并且学时较短。学生经过一个学期的学习,只能对这三门课程有个大概的了解,并不能达到较为灵活应用的程度。

3. 教学现状、教学内容和教学手段

在教学现状上,如今高校在讲授嵌入式系统时,往往是一个教师会面对几十个,甚至上百个学生。在人数较多时,授课质量会下降。事实上,社会培训机构在进行嵌入式系统培训时,往往会限制学生的数量。

在教学内容上,主要是以一些基本概念为主,如单片机结构,Linux嵌入式操作系统的原理和移植,Linux嵌入式驱动程序的开发,以及嵌入式软件的设计方法等。事实上,对于刚接触嵌入式系统的学生来说,讲授这些空洞的基本概念是没有任何意义的。根据学生的反映,由于他们没有任何嵌入式方面的基础知识,讲授上述内容使得他们陷入一种迷茫的状态,除了强迫性记住一些概念之外,其它什么都没有学到。

在教学方法上,主要是以教师讲课为主,学生处于被动地接受状态。学生接受了大量的概念,却没有办法真正理解这些概念。尽管学生也会做一些嵌入式系统的实验,但在进行实验时,学生往往是根据实验手册上的说明,按照实验步骤一步步进行下去,最终除了能看到一些实验结果外,几乎根本无法理解其中的原理。

4. 解决方案

为此,我们认为,高校计算机专业嵌入式系统的教学内容和教学方法必须进行改革,具体体现在以下三个方面:

第一,改变教学内容,注重实际应用。在教学内容上,不应讲授空洞的基本概念,不应以复杂的单片机,如ARM为例进行讲授,不应讲授嵌入式操作系统的原理和移植操作,也不应讲授驱动程序开发,这些内容都不适合初学者。而应该以一个简单的单片机,如C51为例进行讲授。同时,在讲授C51时,应从一个应用者的角度,而不是一个设计者的角度来进行授课,这一点往往是一些教师没有注意到的问题。他们往往过于强调单片机的内部原理,而忽略了单片机的应用方法。

第二,应以教师教课为辅,学生动手为主的教学方法。由于嵌入式系统是一门实践性很强的课程,对于这类课程,过多的教学是无益的,往往会让学生对嵌入式失去兴趣。而如果能够让学生动手实验,学生则能够很直观地感受到嵌入式的魅力。

第三,在动手实践上,应以一个小型项目为主,基于开发板实验为辅的方法。事实上,基于开发板进行实验,学生往往只是简单地对他人的程序进行编译和下载,并观看开发板上的运行效果,并不能主动地研究其中的原理,也无法提高学生解决问题的能力。而如果让学生开发一个小型项目,如温度显示器等,那么学生不仅能够真正了解嵌入式系统的开发流程,解决开发过程中遇到的各种问题,而且能够获得开发成功后的成就感,增加学生对嵌入式系统的乐趣。

5. 结语

本论文在分析嵌入式系统体系结构的基础上,分析了高校计算机专业嵌入式系统的教学现状、教学内容和教学方法,指出现有教学过程中存在的不足之处,并提出了相应的解决方案。该方案有利于提高高校计算机专业嵌入式系统课程的教学效果,以适应社会对嵌入式人才的要求。

参考文献

[1] 蒋伟杰.计算机专业本科嵌入式系统方向可见建设研究[J].计算机教育,2011,10(5):61~64

[2] 王剑.计算机专业《嵌入式系统》教学实践得探索[J].现代计算机,2011,11:35~36

系统开发的主要方法范文5

关键词:软构件;MIS;PowerBuilder

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)05-11187-02

1 引言

在管理信息系统MIS的开发过程中,经常遇到这样的问题,如开发出来的系统不符合用户要求,需要做大量修改;工作进程难以控制;对数据库的依赖性强等。这些问题的产生,一方面是由于MIS系统开发过程本身的复杂性,另一方面也与开发时所采用的技术有关。软件复用被广泛地认为是解决这一问题的关键。目前,被认为有前途的并正被研究使用的软件复用方法主要有:复用代码、复用分析、复用处理过程等。加之面向对象的方法引入解决软件复用性的问题,它的封装和继承机制为软件模块的复用提供强有力的支持。将软件复用技术尤其是软构件技术引入MIS系统设计的各个阶段,对提高MIS系统软件的生产率,增强软件的可靠性和可维护性都有着重大意义。

国际上出现了CORBA,COM/DCOM/COM+ 等软构件的标准和技术,也出现了支持构件软件的开发工具,如Delphi,PowerBuilder等。在基于构件的MIS系统中,最重要的技术便是如何把诸多构件有机地组织起来,减少系统的复杂性。为了控制系统的复杂性,提高软件重用的层次,本文给出了PowerBuilder构建的MIS系统开发模型,对基于软构件开发MIS系统进行了一些探索。

2 软构件的开发方法及其特点

集软件复用、分布式对象计算、CASE和企业级应用程序开发(EAD)等技术于一体的基于构件的软件开发(CBD ,Component Based Software Development)是以软件构架为组装蓝图,以可复用软件构件为组装模块,支持组装式复用,是提高软件生产效率和软件产品质量的有效途径。它包含了系统分析、构造、维护和扩展的各个方面,并以构件方法为核心。当今软件开发技术的主流已是基于构件的技术,构件技术是面向对象技术的发展。只要遵循构件技术的规范,就可以用自己方便的语言去实现可被复用的构件。用户可以在这些构件的基础上,根据需要编制自己的应用程序。与传统的软件复用方法比较,CBD 有以下特点:

(1) 软构件是基于面向对象技术的,软构件是实体对象及相关数据的封装,体现了实体的抽象性,也更加符合客观世界的事物描述方式;

(2) 构件化的思想使开发者能更专注于自己编写的构件的内容:如,实现业务逻辑构件的程序员可以专心于业务过程的实现,而不用分太多的精力考虑和用户的交互;而编写各种界面构件的程序员可以更专注于界面的实现;

(3) 构件封装隐藏了内部数据,操作细节,只是按照标准接口向外提供功能,构件之间也按照标准的规范通过接口进行连接,便于软件的升级和扩充,重用度高。可以实现独立地替换或升级,而不影响系统的其他模块。能快速地适应业务需求的变化,随时替换不适应新情况的功能模块,而不用重新开发新系统;

(4) 构件设计和实现中要注意功能要相对单纯、结构要相对完整,减少与其他构件的祸合度,便于测试、维护。

CBD 技术是一种社会化的软件开发方法,它使得开发者可将不同语言、不同供应商开发的构件组合在一起构造新的软件系统。

3 软构件技术与MIS系统开发方法

传统的MIS开发方法主要有:①面向数据流的SD方法,即结构化设计方法,包括自底向上法和自顶向下法;②快速原型法(面向对象方法),其核心是原型,即模型,是系统的早期可运行版本。这些方法各有优缺点:“自底向上”法只重局部而忽视了对整体的把握;“自顶向下”法开发周期长、见效慢、缺乏灵活性和适应性;快速原型法虽然具有很明显的优越性,但因其依赖于快速开发工具的支持,又不能不令许多系统开发者望而却步。

基于这些问题的出现,应用软构件技术开发MIS系统成为现在新的研究方向。采用软构件技术开发MIS系统的过程与搭积木的过程很类似,一般是先构筑系统的总体框架,然后构造各个构件,并依次把构件安装到系统中去。这种方法克服了快速原型法需要快速工具支持的不足,取而代之以软件构件化技术来构造系统。大部分MIS 系统在功能上有类似之处,因而利用软件的重用技术就可以把开发过程大大简化。

根据MIS系统的一般结构,完整的MIS系统的功能是对信息(数据)进行采集、存储、处理、管理、检索和传输,在需要时能够向使用者提供有用的信息。MIS系统基本上是以数据为中心的,其主要功能都是围绕着数据进行的,如数据定义、数据录入、数据处理、查询检索、统计分析、报表、数据传输等。 根据以上特点,MIS系统中的相应的应用领域构件分为数据类构件和控制类构件,它们是MIS系统领域构件的主要组成部分,它们的集合构成MIS系统的构件库的重要组成部分。在开发MIS系统之初就应着手建立相应的构件库,并在开发过程中不断完善。

MIS系统采用CBD设计方法,把应用系统划分为若干个构件,把程序生成问题转化为软构件的设计、处理问题。 对于不同的应用系统,根据系统的实际需要,对构件库中软构件进行选择,根据一定的集成算法将软构件连接成完整的应用系统。

4 基于软构件的MIS系统的开发模型

构成MIS系统的基本结构见图1:

图1 MIS系统的基本结构

由图1发现,通用的信息系统包括三大模块:信息输入模块、查询统计模块及报表生成模块。另外,为了协调整个系统的工作,还必须提供模块之间协同交互的功能模块,即控制模块,该模块为诸模块提供统一的控制。

根据MIS系统的共同特点,采用软构件技术建立一种基于软构件的MIS系统开发模型,如图2:

图2 MIS系统的构件化开发模型

系统基础构件是指支撑集成环境和运行环境的构件,如控件、按钮等。在此基础上构建大粒度的软构件,根据不同的功能和结构,可以分为以下几类:

(1) 输入类构件:此类构件专门负责提供数据增、删、改操作功能。有单表维护构件、主从双表构件和一主多从表构件,每种构件还可以有分为单记录,多记录等维护风格;

(2) 查询统计构件:专门负责数据的查询统计功能。只要有查询条件和查询结果两大部分。查询结果有明细、统计及图表等表现形式;

(3) 报表类构件:报表类构件专门实现报表的生成、预览与打印输出;

(4) 系统控制类构件:是指系统组装集成后的程序总控构件,为用户达到整个MIS系统的可操作功能提供了入口和全局管理,其实质是一种框架构件;

(5) 辅助系统构件:辅助系统构件是指完成用户管理、角色划分、操作注册、权限设置等功能的构件。它们在组装环境用它们来设置系统用户及系统功能。

5 模型实现

PowerBuilder(以下简称PB)是面向客户器/服务器应用领域的前端开发工具,它支持面向对象的软件开发方法。在PB中,一方面,派生对象可重用父对象的所有属性、变量、函数、结构和响应事件的脚本程序;另一方面,对派生窗口、菜单和用户对象,进行修改和扩充。另外,创建自定义的用户对象,用户可根据应用系统功能的需要,放置控件,定义用户事件和用户对象函数,由此构造出可重用的用户定义的软部件。

系统基础构件包括,数据窗口构件ue_dw,是访问后台数据库的构件,另一种是进行数据处理的按钮构件ue_cb,第三种是画面的基础构件w_1。这三种构件构成了MIS系统的基础构件层。

以这三种基础构件为基础,通过层次展开的方式,分别形成输入维护类构件,查询统计类构件,报表类构件等等。下面简单介绍画面类构件和报表类构件。

(1)画面类构件(输入类构件和查询统计类构件)

图3 画面类构件

对MIS系统的画面进行分析,提供条件数据窗口控件、结果数据窗口控件,所有的处理按钮,如:查询、上一条记录、下一条记录、下画面、增加、更新、画面跳转、删除、帮助、画面硬拷贝、退出等。在实际的开发过程中,根据每个画面的具体需要,把相应地按钮或者数据窗口控件设置成可见或者不可见。如:输入类控件,就把条件数据窗口控件是不可见的;而查询统计类控件,更新和删除等按纽是不可见的。

(2)报表类构件

图4 报表类构件

报表类控件主要提供打印预览窗口、页面设置、打印机控制、数据过滤以及打印输出到文件或者打印机等功能。利用丰富的数据窗口控件的属性,对数据窗口进行控制,允许用户调整相应属性,满足用户的各种需求。

6 实际应用

在开发作业成本管理系统COMPASS的实践中,使用了上述构件库,2个月左右完成了系统的开发工作。这些软构件的主要特点是:(1) 它们都是基于PB 用户对象构造的软构件;(2) 系统通过软构件的对象函数与软构件发生联系;(3) 软构件通过数据窗口控件与系统数据库进行数据交换。

其后在生产管理系统、物流管理系统开发过程中,因系统的画面风格、按钮位置,数量的不同,只需要对上述构件表现形式上进行修改,就可以使用。使软件开发工作变得相当容易、简单。

以上主要介绍了目前一种新的软件开发方法,即以面向对象为基础的基于软构件的开发方法。 构件技术是一种非常有前途的软件开发新技术,MIS系统又是当前最广泛的计算机应用领域之一,将两者结合起来必将进一步推动MIS系统的发展并为其软件的产业化提供相应的解决方案。

参考文献:

[1] Johannes Sametinger. Software Engineering with Resuable Components[M]. NewYork: Spring-Verlag Berlin Heidelbery. 1997.

[2] 杨芙清. 软件复用及相关技术[J]. 计算机科学, 1999,26(5).

[3] 王少锋, 何志均, 王克宏. 软件重用技术研究[J]. 计算机工程与设计, 2000,21(5):10-15.

[4] 李相枢. MIS系统的组成和构件模型[J]. 计算机工程与应用, 1999,35(1):27-30.

系统开发的主要方法范文6

[文献标识码]A

[文章编号] 1673-5595(2014)05-0070-06

系统科学哲学的研究是系统科学相关研究的思想基础。系统科学哲学不同于贝塔朗菲、拉兹洛等人提出的系统哲学,从学科定位看,前者属于具体科学哲学问题的探讨,后者属于自然哲学的探讨,也有学者把二者等同对待。[1]论纲可以成为系统科学哲学展开研究的重要框架,苗东升曾经做过相关研究[2]1820,从国际视阈看尚显不足。随着近些年来系统科学的高速发展,系统科学哲学研究的重要性日益凸显。本文将在国内外系统科学研究差异比较[3]的基础上,从一般哲学的本体论、认识论和方法论三个方面系统阐述系统科学哲学研究的主要内容,尝试为系统科学哲学的研究提供研究纲领。

一、系统科学哲学之本体论

系统科学哲学本体论的研究是以一般哲学的本体论研究为基础的。“本体论”这一范畴最早是由德国经院学者郭克兰纽首先提出来的,他将其解释为“形而上学的同义语”[4]35。简单来讲,本体论是“研究存在的理论”[5]6667,“是对是、存在和实在的最一般的学科或研究。 这个术语的一个非正式含义是指,……即哲学家思考世界由什么构成。……但是,更正式的含义,本体论是通过确定所有本质范畴和阐明它们之间的相互关系来表征实在的形而上学方面。”[6]2122 “本体论的首要任务是提供范畴的详细目录,即实在的最一般分支。”[6]23

系统科学哲学之本体论研究比一般哲学本体论研究要具体一个层次,或低一个层次。系统科学哲学本体论研究从系统科学基本范畴开始,涉及系统及其系统的关系性存在本身的问题、系统演化与生成问题,以及对系统科学的元研究等问题。以哲学上的本体论范畴为基础,本文把系统科学哲学之本体论的研究内容总结为以下三方面:

第一,系统科学基本范畴或“语词系统”。吴彤在复杂性科学研究中,提出学术研究应该从基本概念开始的思路,他认为对于复杂性科学或非线性科学的研究应该从复杂性、非线性的概念或含义开始。[7]系统科学涉及范畴很多,尤其是在不同学科中又存在不同含义。库恩后期试图在某种程度上用“语词系统”代替其有重要创建但富有争议的“范式”范畴,对系统科学语词系统的研究,是作为范式的系统科学研究的重要内容。库恩意义上的科学革命就是用一套新的语词系统代替原来旧的语词系统。[8]金吾伦对库恩语词系统的主要性质进行过总结,总体上说就是“由一套具有结构和内容的术语构成;诸术语构成一个互相联系的网络。一本辞典就是具有一套特定结构的词汇”[9]。系统科学范式已经逐渐形成[10],一种新的语词系统将逐渐代替经典科学的语词系统,最明显的体现就是诸多系统科学范式下的术语或范畴开始出现并逐渐代替经典科学的诸多范畴。Flood和Carson在系统科学研究中,简要介绍了61个系统科学范式内的术语和概念,如组织整体、关系、反馈、输入、输出、环境、开放系统、内稳态、熵、适应性、控制论、黑箱、正反馈、负反馈、整体论、系统方法论等。[11]521Ackoff早在20世纪70年代就认识到了“系统”这一概念在当今科学中的重要地位,他试图建立起一个系统概念的系统,在他的体系中,主要介绍了11种系统类型、4种系统变化、11种系统行为类别,另外,他还对系统及其元素之间的关系、适应性和学习、组织等涉及的共32个范畴或术语进行了系统探讨。[12]吴彤也对系统科学涉及的一些基本概念进行了深入研究。[1314]语词系统的研究是伴随着系统科学发展而发展的,主要体现在两个方面:一是术语或范畴的扩展;二是术语或范畴之间组成的网络关系的发展。

第二,系统的存在状态及其特征。这里的系统包括贝塔朗菲提到的“实在系统和概念系统两类”。[15]460国外诸多学者都在这方面进行了深入研究,贝塔朗菲对系统的界定以及对系统特征的研究[16]、拉兹洛《系统哲学引论》中第一部分“一般系统论”的探讨[17]、邦格的科学唯物主义以及系统本体论的探讨[1819]等都属于这方面的研究。国内也有诸多学者对系统进行了研究,如陈忠等人的《现代系统科学学》的第一部分“基础系统论”基本上都属于这方面的研究[20]3165;苗东升在《系统科学大学讲稿》中对系统的概念、系统的结构、系统的环境、系统的功能、系统的属性、系统的形态与状态等问题进行了系统说明,比较全面地介绍了存在的系统的状态及其特征。[21]系统的演化也是系统的重要存在状态,所谓系统的演化,“包括系统的孕育、发生、成长、完善、转化、消亡等”[22]42。演化特征是系统科学区别于经典科学的重要特征,因此,对系统演化特征的研究也是系统科学本体论研究的重要内容。对系统的存在状态及其特征的研究为系统科学哲学的探讨提供了现实材料,同时它也是系统科学基础理论研究的逻辑前提。

第三,系统科学的元研究。这一方面的研究主要包括:系统科学的学科定位、系统科学的存在状态、系统科学的发展演化、系统科学的理论体系等。诸多国内外系统科学研究的学者几乎都涉及了这方面研究,只是研究视角、问题不同。几乎每本系统科学著作在开篇或第一章都会直接涉及这方面的内容。自钱学森以来,诸多国内外学者都构建了自己的系统科学理论体系,这些研究都属于该方面内容。Gigch在20世纪80年代初做的系统科学分类学研究也是这方面研究的重要代表,他以系统科学主要关注的问题为出发点,依据两个不同的标准对系统科学进行了分类学研究,把系统科学分为理论本体型、应用本体型、理论概念型和应用概念型四种不同类别,并对应着不同的系统理论类型。[23]179191当然,在这个方面,对系统科学各论,如一般系统论、控制论、耗散结构理论、混沌学等相关学科存在状况的研究,也属于系统科学哲学本体论研究的范围。

二、系统科学哲学之认识论

认识论是由“苏格兰哲学家J.F.费利尔在《形而上学原理》(1854年)一书中首先使用的”。[4]719在《剑桥哲学辞典》中对认识论进行了明确阐述:“认识论:知识和辩护的本质的研究;具体说,是对知识和辩护的(1)定义特征、(2)存在的条件和来源、和(3)限制的研究。这三个范畴代表了传统哲学三个方面的争论:知识和辩护的分析、知识和辩护的来源(如唯理论和经验论)和关于知识和辩护的怀疑论的生存能力。”[24]273“认识论试图解释知识和理性信仰的本质和范围。它的范围也包括阐述和评价各种怀疑论结论的论据。”[6]270徐向东把传统认识论的研究归结为五个问题:分析问题、划界问题、方法问题、怀疑论和认知辩护问题以及价值问题。[25]简单总结为一句话:认识论回答认识或知识如何可能,主要探讨作为存在的认识的本质及发生、发展的规律,以及对认识的辩护等。

系统科学哲学之认识论研究的主要内容可以简单概括为系统科学知识如何可能的问题。这里的知识主要指系统科学科学学科(钱学森等人称之为系统学)的知识,也包括技术学科和工程学科。系统科学哲学认识论的建构论转向使其在研究内容方面明显区别于经典科学。系统科学的认识论研究在学科内部具有重要地位,甚至Gigch直接把系统科学称之为认识论领域的学科。[26]对于该问题的探讨主要包含以下三方面内容:

第一,系统如何可能。系统的存在是系统科学知识可能的基础,因此对于该问题的探讨是系统科学之认识论研究的首要内容。和经典科学的研究类似,国内外对于该问题的研究也主要存在两个对立的观点:实在论与建构论,部分观点处于二者之间。实在论观点认为,系统客观存在于现实世界,系统科学是对现存的系统进行研究的科学。部分国内外学者坚持实在论观点,国外较有代表性的是加拿大系统哲学家邦格,他认为:“每个事物都是系统或系统的成分。这一原理对具体事物和观念都同样适用。原子、人、社会以及他们的成分和由它们所组成的事物都是这样。”在他看来没有孤立的事物,“世界是系统的世界”[18]1120。马克思的辩证唯物主义系统观也是典型的实在论观点。国内学者中,大多数都持实在论观点。如苗东升认为:“现实世界中系统是绝对的、普遍的,非系统是相对的、非普遍的……一切事物都以系统方式存在”[22]22;许国志等人编辑的《系统科学》也持这样的观点,认为“系统是一切事物的存在方式之一”[27];另外,李曙华[28]、陈忠[20]、邹珊刚[29]等人的著作也都是建立在实在论基础之上。持建构论观点的代表人物是Klir,他认为:“所有系统都是人工抽象物。它们不是自然呈现给我们被我们发现的,而是我们通过我们的感知和精神能力在经验领域内的建构。要求与真实世界对应的系统概念是虚幻的,因为没有办法核实如此的对应。除了通过经验以外,我们没有机会接近真实世界。”[30]88,[31]Bhola同样认为系统“边界”不是先验存在,而是被系统思考者在主观内容上为了专门的需要建构起来的。[32]Boulding认为:“系统没有必要与我们周围的真实世界相联系。它研究所有从任何具体情景和经验知识中抽象出来的可以想象到的关系。”[33]当然,除了坚持这两种观点的学者以外,还存在大量学者像哲学认识论研究一样行走在实在论与建构论之间,本文不再多述。总之可以说,对该问题的回答,两种观点并行,国内实在论观点占优,国外建构论观点占优。

第二,系统科学知识如何可能。知识如何可能的问题是哲学认识论的核心问题,当然在系统科学哲学这里也必然是一个重要的需要探讨的问题。哲学认识论对于知识如何可能的探讨是不区分经典科学与系统科学的,但是以前哲学探讨所针对的或主要使用的基础性资料都属于经典科学知识。无论是从知识本身的特征还是从知识的获得途径看,系统科学知识相对于经典科学知识都发生了重要变革,这必然为系统科学知识如何可能的问题提供新的材料。系统科学知识的出现和发展必将改变传统认识论中的某些观点,同时,也使新的认识论观点成为可能。国内外对该问题的具体研究现在还比较少,日后有待研究的进一步展开和深入。对于该问题的回答,同样主要存在两种观点:实在论或建构论,以及行走在二者之间。在经典科学界,实在论观点明显占据主体,但是,在系统科学界则明显不同,建构论已经逐渐成为了系统科学界的主流观点。[30]对系统持实在论或建构论观点的人基本上对系统科学知识持相同的观点。在系统如何可能问题的探讨中已经对主要代表人物进行了说明,不再重复。国内系统科学界大多数学者都坚持实在论观点。对于系统科学知识如何可能持建构论观点的人除了上文提到的Klir以外,Vmos也是系统科学建构论的重要代表。[34]总之,对于该问题的回答构成了系统科学哲学之认识论的重要研究内容。

第三,系统科学的认识如何可能。认识如何可能是对系统科学认识本身的探讨。马克思主义哲学的认识论主要研究认识自身,认识的本质、结构、过程等。系统科学哲学认识论的这部分研究内容即是建立在马克思主义哲学认识论基础上对系统科学认识进行哲学探讨。苗东升系统科学哲学论纲中的认识论即是在这个方面的研究。[2]1820系统科学的认识过程相对于经典科学的认识过程而言已经发生了显著变化,它不再依托传统的获取知识的模式――“观察―归纳”或“假说―演绎”。系统科学认识模式逐渐转化为哲学思辨、系统仿真建模等方式,如一般系统论就是通过哲学思辨获取系统的相似性或同型性,从而建立系统的一般理论;控制论也是通过思考动物与机器的结构同型性或相似性而创立的理论。正是由于系统科学认识方式已经发生了明显变化,因此必然要求对系统科学的认识进行专门探讨,通过对认识的结构、认识的过程、认识的方法等的深入研究洞悉系统科学认识的本质。这种研究不仅可以推进系统科学认识方法的发展,进而推进系统科学理论和方法的进步,还可以反过来影响哲学认识论的发展。系统科学认识论相对于一般哲学认识论而言,更加接近具体科学,必然为更一般层次的哲学认识论的发展提供重要例证,推进哲学认识论的发展。国内外系统科学界对这个方面的研究都不是太多,且有待深入。国外系统哲学界基本上不在这个视角上进行探讨,但是他们在系统科学方法论的研究中渗透着诸多这方面的内容。国内这方面的研究也不是太多,李建中对系统认识论的研究属于这个方面,他在比较了黑格尔、马克思的认识论基础上对系统认识论进行了一定探讨。[35]苗东升对这个问题也进行了初步探讨。[2]1820,[36]在这一角度上,系统科学认识论与方法论的研究存在诸多交叉之处,某种程度上具有一致性,对认识过程的研究事实上就是对认识方法的研究。因此,这方面的研究可以成为沟通系统科学哲学认识论与方法论的桥梁。

从系统科学哲学认识论的发展和研究内容、问题来看,它并没有带来认识论领域的根本变化,只是为认识论的研究增加了新材料、提出了新问题。或者说它并没有带来认识论模式的变革,只是改变了不同观点在认识论中的地位。系统科学认识论的研究会伴随着哲学认识论的研究永远进行下去,也许人类理性永远无法得出确定性的结论,正像哲学也许正在做一件注定失败的事情一样。[37]

三、系统科学哲学之方法论

一般来讲,方法论是“关于认识世界和改造世界的方法的学说和理论”[5]8。20世纪中叶以来,西方科学哲学界关于方法论的研究出现了一股新趋势,主要表现在冲破对科学理论静态的逻辑分析,从而把对方法论的研究同科学发展史联系起来,如波普尔、库恩、拉卡托斯和费耶阿本德都试图从方法论角度说明科学理论的革命和发展。[4]205在《剑桥哲学辞典》中给出了一个兼容以上但更偏重于后者的论述:“方法论是科学哲学的一个分支,它与知识论密切相关,探究科学达到关于世界的预置真理的方法和批判性地探究这些方法的基本原理。在科学中理论被承认的问题,证据和假说之间确证关系的本质,科学断言能被观察数据证伪的程度等这些问题都是方法论所关注的问题。”[24]700总之,在当今科学哲学界,方法论在两种含义上被使用:一是论“科学研究的方法”,即对科学研究方法的研究;二是科学的规范性研究。从亚里士多德的《工具论》到培根的《新工具》,以及国内李志才等的《方法论全书》、吴彤的《自组织方法论研究》、黄欣荣的《复杂性科学的方法论研究》等都是在第一种含义上使用方法论的。第二种含义是知识如何获取或为获取的知识进行逻辑辩护。从波普尔、库恩,到拉卡托斯、费耶阿本德等都是在这一意义上使用的。

系统科学哲学之方法论即是以系统科学方法为研究对象,探讨获取系统科学知识的路径及其特征。“系统科学首先具有科学方法论的意义”[2]1820,进一步讲,系统科学就是一门方法论性质的学科。[20]13,[23],[29]1,[3840]Klir把系统科学方法论看作通常意义上一门学科三个必不可少的组成部分之一[41],Flood等人也提到“系统科学的一个重要研究领域是通过方法论把它的概念应用到当今的解决问题、计划和决策当中”[11]5。国外系统科学界探讨的系统科学方法论主要涉及硬系统方法论、软系统方法论、批判系统方法论等,但主要是介绍解决问题的方法,而非对方法进行系统的哲学研究;国内相关研究刚刚展开。本文把系统科学方法论的研究内容总结为以下四方面:

第一,系统科学方法的具体内容及其相互关系。方法论的核心内容是论方法,因此,对系统科学方法具体内容的探讨就成为了系统科学方法论的首要也是基础性内容。从时间顺序来看,系统科学方法的内容可分为三个阶段,传统系统科学方法(一般称老三论时期的系统方法)[42]、自组织系统科学方法[43]和各种系统思考方法。系统科学方法之间的关系、方法体系即分类学探讨是该部分的第二个研究内容,即以具体方法的研究为基础系统梳理系统科学各种方法之间的关系,并尽可能建立起系统科学方法体系。国内外对系统论、信息论、控制论方法相互关系的研究相对比较深入,但是对于所有的系统科学方法而言,这方面的研究还刚刚起步,国内外少有系统研究。陈忠把系统科学方法论内部方法的相互关系进行过初步分析,划分了三个层次:“系统科学方法论原则”;“以各种理论为出发点的各种认识系统规律性的方法,处理系统一般问题的方法”;“针对某类具体的系统问题的方法”。[20]613614对系统科学具体方法的分类学研究为方法论的后续研究提供了体系化的研究对象。

第二,系统科学方法的性质、特征及其原则。系统科学各方法之间存在着内在联系,构成一个有机体系。对这些方法的性质、特征以及原则的探讨有利于更全面地认识系统科学方法的整体特征,有利于系统科学方法的普遍运用,也使得系统科学方法自身更加系统。魏宏森在20世纪80年代初的时候就对“系统科学方法论的基本特征”进行了探讨,提出了系统科学方法论具有的八大特征[42]6470,但是笔者认为,作者所谓的特征应该是系统科学方法的特征而非方法论的特征。当前学界诸多对系统科学方法论性质、特征和原则等的研究事实上都是对系统科学方法的相关研究,对方法的研究恰恰是方法论研究的重要内容。吴彤在具体阐述自组织方法的基本内容基础上研究了自组织方法论的几个重要特性[43],朴昌根对系统方法的基本原则进行了简要总结[44],Laszlo对系统哲学方法论的原则以列表的形式进行了说明[45]。对系统科学诸多性质、特征等的研究对于方法的实践应用以及方法论研究都能起到巨大推动作用。

第三,系统科学方法论的元研究,即系统科学的学科地位、特征及其哲学意义。这部分内容属于系统科学方法论的元研究,即对系统科学方法论自身进行的研究。系统科学方法论是以哲学上的方法论为基础,区别于经典科学方法论发展起来的理论体系。系统科学方法论学科地位的研究涉及其与系统科学哲学、系统科学的具体科学之间的关系,认清它们之间的相互作用对于系统科学的整体发展大有益处。所谓系统科学方法论的特征是指与经典科学方法论的差异,深入理解两者的差异才能从根本上弄清系统科学方法论相对于经典科学方法论所引起的革命性变革所在。对这种变革的探讨是系统科学哲学研究的重要内容。对系统科学方法论学科性质的认识反过来会促进系统科学方法的发展和完善。总之,对方法论的元研究至关重要,Warfield认为,科学由两部分组成,“主体”和“方法论”,他认为:“没有方法论的主体就像没有身体的脑袋;没有主体的方法论就像没有脑袋的小鸡,在血腥的牲畜棚里戴着枷锁扑腾。”[46]

第四,系统科学知识是如何获取的。以系统科学知识为对象的方法论研究在学术界尚未引起重视。传统科学哲学主要就是探讨方法论问题,从孔德等人的实证主义到波普的证伪主义,再到库恩的范式理论、费耶阿本德的反对方法等都是为知识如何获取提供理论辩护,但是他们的理论主要针对的是以实在论为认识论基础的经典科学知识。对于部分坚信实在论的系统科学家而言,传统科学哲学的方法论虽然存有诸多争议但依然适用。系统科学认识论方面的建构论转向必将引起方法论的重要变革。以建构论为基础的系统科学知识如何获取,或者说是否存在获取这种类型知识的原则或方法就成为了系统科学方法论的重要研究内容之一。笔者认为,由于系统科学知识及领域的特殊性,相关的方法论研究前景广阔,甚至有可能在某种程度上复苏传统科学哲学,笔者将另文专门探讨该问题。