1. 课程特点与地位
系统科学是以哲学和数学的抽象去看待、思考、分析、理解、描述和指导改造客观事物的一门科学,系统科学把客观世界中的事物看成是一种外部有环境、内部有组织的,相关联、互作用的,有运动、有发展的,具属性、有功能的,可以从不同角度看待和处理的,分层次、按类别的单元集、子系统集,可描述为某种对象集结构; 而每个单元、子系统又可看成具上述性质的单元集、子系统集,也是某种对象集的结构; 从系统科学来看,客观世界中的事物及其各种分解都是某种系统。“系统科学是自然科学、社会科学与管理科学的共同的基础科学”(图01)。
图01系统科学的定义
传统的系统分析法,如功能分解法、数据流法、ER法,甚至一般意义下的面向对象法([2]、[6])等,由于缺乏有意识的系统科学指导,所用模型难免偏离客观世界的真实影射,具有很多的主观随意性; 多数只有分析,而没有或缺少综合,也极欠缺分析结果的形式化描述方法。由于缺乏形式化描述,使得系统分析和系统开发的下阶段(如系统设计等)之间有很大的思想和语言鸿沟。
基于系统科学的系统分析与综合是以系统科学的哲学抽象,形成基于系统科学的知识模型(SSBKM), 按照SSBKM观察、搜集、思考、分析和理解问题域系统,找出问题域的子系统和关键元,提炼系统本质,提出系统建议书,给出基于系统科学的系统分析的形式化描述,为系统综合提供基础。继而以计算机技术(如面向对象技术)对系统进行综合和优化,给出基于系统科学的面向对象综合的形式化描述(及形象化描述),以指导问题域(系统)的计算机化的系统开发。这样的方法称为“基于系统科学的系统分析与综合”。
基于系统科学处理问题可动可静,既可研究静态问题,更能揭示动态问题; 既可描述线性、顺序过程,更为处理非线性、并行与分布问题提供有效的方法; 同一系统既可描述不同视图、不同层次,又可粗可细、可详可略; 关系灵活而可描述,其结构复杂而可控制。以系统科学观点观察事物可防止臆想,最少疏漏,最能揭示事物的本质,基于系统科学建立系统模型是事物的最真实和实际的映射。对于系统分析与综合的过程与结果,本书使用面向对象的类Java的“形式化”描述方法,也提供了可选择使用的UML“形象化”描述方法,以此形成系统设计的草图和蓝图,便于把问题域(系统)落实为面向对象的计算机化的目标系统。
2. 能力结构与课程地位
基于系统科学的系统分析与综合相当于系统开发的逻辑设计阶段,提供方法学知识和相当于工程草图的设计知识。学习本课在于培养学生于系统开发模式图(图02)中粗体字所标识的知识和能力。
图02系统开发过程模式图
3. 教学方法与目标
1) 知识结构
全书着重介绍基于系统科学的系统分析和综合原理、方法的可操作性的知识,包括系统分析与综合结果的形式化的描述。历史上,计算机技术的重大发展以及客观世界计算机化,都离不开“形式化的描述”。
本书分为8章。第1章介绍系统分析的责任; 在比较了各种系统分析与设计方法后,突出说明了一般的面向对象方法的优越性和存在的问题。第2章介绍基于系统科学的知识模型SSBKM,它是关于“系统分析、综合与设计”的新的方法学和策略性的指导,用来指导和实现系统分析、综合与设计; 是本书的原理重点。第3章和第4章给出基于系统科学的系统分析过程: 按SSBKM单元对问题域做分解和划分,揭示系统及各单元的属性、功能、对象、对象类及对象的关系与结构,并进行本质化; 以基于系统科学的知识模型SSBKM去指导看待、收集、思考、分解、分析和理解各问题域(系统): 从“问题域的动态阶段与静态状态”,从“系统的不同视角和系统的各种划分”,从“问题域结构及其各种表现”,从“多种层次和各种类型的关系”,从“问题域计算机化过程中对系统本质的可粗可细的理解和提炼”,从“系统的环境与人员的地位”,以及从“人员间的关系及人机关系的揭示和处理”等方面,指导系统分析人员粗细有度地处理问题域系统,提炼出目标系统的本质,从而介绍“基于系统科学的系统分析的形式化描述和分析结果的面向对象方法的形式化描述”方法。在第3章和第4章系统分析所取得的“对象类集”的基础上,第5章给出可“满足系统责任的”SSBKM各单元的综合原理和方法,特别着重系统各种划分下的各种结构和关系的综合,以及系统环境、系统“人员”等的综合,落实为可操作性知识; 本章是全书的方法重点。全书以网络院校和超级市场系统为例,贯穿结合两例讲解基于系统科学的系统分析的原理、方法及解释,并给出两例的系统分析与综合结果的形式化描述,其文档见于第6章及附录B; 第7章介绍通常的系统分析的参考文档格式: 对象系统的主题与主题图格式、对象类关系图格式、对象类的属性与功能的说明格式等,可以作为系统分析与综合的文档写作参考。第8章介绍统一建模语言(UML)的类模型、状态模型和交互模型的意义和表示法,说明了UML在“系统分析过程和对分析结果的形象化说明”方面的作用; 强调指出了UML与SSBKM的一致性: UML对SSBKM是一种内映射,两者有着互补关系。
2) 大练习或阶段论文
课程开始,每个学生可以自拟一问题域(即系统,例如所做项目、毕业论文或感兴趣题目),从问题域的分析,揭示系统(子系统)的属性、功能、关系和结构; 揭示SSBKM各个单元; 接着揭示系统的本质,给出类Java的形式化描述。基于此,练习目标系统的综合。全过程上机编程验证,分阶段地不断修改、完善和归纳总结,最终给出系统分析与综合的期末论文。
3) 上机实习
在对问题域系统分析与综合结果的面向对象形式化描述的基础上,再上机作Java编程,实现部分子系统; 从而不脱离实际地给予学生从分析、综合、设计直到实现的系统开发全过程的训练。
4) 先修课与后续课
参考基础: 数学、编程、算法、网络、数据库、体系结构或硬件技术等
可同时或后续学习软件工程。“系统分析与综合”面向设计,“软件工程”面向施工和标准等
作者李膺春
2008年10月写于北京师范大学珠海分校信息技术学院