六、软件方法学和工程
软件领域研究满足技术要求、安全、可靠、可信的程序和大型软件系统的设计。
基本问题包括:
在程序和程序设计系统的开发背后的原理是什么?
怎样去证明程序或系统满足它的技术要求?
怎样上给定技术要求,使之不遗漏重要的情况,而且可以分析它的安全性?
怎样使软件系统通过不同阶段不断改进?
怎样使软件设计得易理解和易修改?
1. 理论
软件方法学和工具领域理论的主要部分是:
(1)程序验证和证明。
(2)时态逻辑。
(3)可靠性理论。
(4)谓词演算、公理语义学、和认知心理学等支撑领域。
2. 抽象
软件方法学和工具抽象的主要部分是:
(1)定义技术要求的方法。如谓词变换器、程序设计演算、抽象数据类型和弗洛依德-霍尔(Floyd-Hoare)公理化符号。
(2)方法学,如逐步提炼、模块化设计、模块、分离编译、信息隐藏(information hiding)、数据流和抽象层次。
(3)程序开发自动化的方法。例如,文本编辑程序,面向语法的编辑程序和屏幕编辑程序。
(4)可信计算的方法学;例如,容错,安全性,可靠性,恢复,N 版本程序设计,多方式冗余,和检查点插入。
(5)软件工具和程序设计环境。
(6)程序和系统的测度和评估。
(7)软件系统到特定机器结构的匹配问题域。
(8)软件研制的生命周期模型。
3.设计
软件方法学和工具领域殴计和实验的主要内容是:
(1)技术要求描述语言(如PSL2,IMA JO)、构造管理系统(如在Ada APSE)和修改控制系统(如RCS,SCCS)。
(2)指向语法的编辑器、行编辑器、屏幕编辑器和字处理系统。
(3)在软件开发实践中倡导和使用的特定方法,如HDM,及Dijkstra,Jackson,Mills或Yourdon 等人倡导的方法。
(4)测试的过程和实践(例如,遍历、手模拟、模块间接口的检查、测试集的程序通路列举和事件跟踪),质量保证和计划管理。
(5)程序开发和查错.剖面分析.文本格式化和数据库操作的软什工具。
(6)像国防部那样的安全计算系统的标准级和验证过程的技术要求。
(7)用户接口的设计。
(8)设计非常人的可靠、容错和可信的系统的方法。
七、数据库和信息检索系统
本领域研究对大量持续的分享的数据集合的组织,使之能够进行有效地查询和刷新。
基本问题包括:
用什么样的模型化概念去表示数据元和他们之间的关系?
怎样把存储、定位、匹配和检索等基本操作组合成有效的事务处理?
这些事务处理怎么与用户有效地交互作用?
怎样把高级查询翻译成高性能的程序?
什么样的机器结构能导致有效的检索和刷新?
怎样保护数据,以抵制非法存取,泄露或破坏?
怎样保护大型数据库不会由于同时刷新而导致不相容?
当数据分散在许多机器中时,怎样使保护和性能二者得以兼顾?
怎样索引和分类正文,以达到有效的检索?
1. 理论
数据库和信息检索系统领域理论的主要部分是:
(1)关系代数和关系演算。
(2)相依性理论。
(3)并发理论、特别是可串行的事务处理、死锁和多复制件的同步更新。
(4)统计推断。
(5)排序和搜索。
(6)性能分析。
(7)作为支持理论的密码学。
2.抽象
数据库和信息检索系统抽象的主要部分是:
(1)表示逻辑结构和数据元之间关系的模型,包括关系模型和实体关系模型。
(2)为快速检索的文件的表示,如索引、树、反演和相联存储。
(3)保证更新时数据库完整性(相容性)的方法,包括多复制件的并发更新。
(4)防止非法泄露或更改以及极小化统计推断的方法。
(5)对不同类型数据库提出询问的语言(例如,超正文、正文、空间的、图形、图象、规则集)。对信息检索系统也类似。
(6)模型,例如超正文,它允许文件包含多级正文.并包括显示、图形和声音。
(7)人的因素和接口。
3.设计
数据库和信息检索系统领域设计的主要内容是:
(1)设计关系、分级、网络和分布式数据库的技术。
(2)设计数据库系统,如INGRES,System R,dBASE III 和DB-2 的技术。
(3)设计信息检索系统,如LEXIS,Osiris 和Medline 的技术。
(4)安全数据库系统的设计。
(5)超正文系统,如NIS,NoTeCard,Intermedia,和Xanadu 。
(6)把大型数据库录入磁盘存储器的技术。
(7)把大型只读数据库存入光存储媒介的技术,例如CD/ROM 和WORMS 。
八、人工智能和机器人学
本领域研究动物和人类(智能)行为模型。
基本的问题包括:
摹本的行为模型是什么和我们怎样建造机器来模拟它们?
由规则赋值、推理、演绎和模式计算所描写的智能可以达到什么程度?
由这些模型模拟行为的机器最终能达到什么性能?
感知的数据应如何编码,使得类似的模式有类似的码字?
驱动码怎样和感知码相联?
学习系统的体系结构如何,以及这些系统如何表示他们对外部世界的知识?
1. 理论
人工智能和机器人学领域理论的主要部分是:
(1)逻辑:即单调的、非单调的和模糊的。
(2)概念相依性。
(3)识别。
(4)自然语言理解的语法的和公理的模型。
(5)机器人运动和机器人用的外部世界模型中的运动学和力学。
(6)结构力学、图论、形式语法、语言学、哲学和心理学等支持领域。
2. 抽象
人工智能和机器人学领域抽象的主要部分是:
(1)知识表示(例如,规则、框架、逻辑)和处理它们的方法(例如,演绎、推理)。
(2)自然语言理解和自然语言表示的模型,包括音素表示、机器翻译。
(3)语音识别和合成、正文到语音的翻译。
(4)推理和学习模型,例如,非必然性、非单调逻辑、贝叶斯推断、信念。
(5)启发式搜索方法、分枝限界法、控制搜索。
(6)模仿生物系统的机器结构,例如,神经网络、连接机制,稀疏分布式存储器。
(7)人类存储模型、自动学习和其他机器人系统元件。
3.设计
人工智能和机器人学领域设计的主要部分包括:
(1)为逻辑程序设计、定理证明和规则赋值的软件系统的设计技术。
(2)小范围专家系统(如Mycin,Xcon)和为在新范围内编程用的专家系统外壳技术。’
(3)逻辑程序设计的实现(如PROLOG)。
(4)自然语言理解系统(如Margie,SHRDLU 和选择语义学)。
(5)神经网络和稀疏分布式存储器的实现。
(6)玩跳棋、象棋和其他策略性游戏的程序。
(7)工作语音合成、识别。
(8)工作机器人,静态的和移动的。
九、人机通信
本领域研究人类和机器通过各种类似于人的传感器和电动机进行的有效的信息交换,并研究反映人类的概念化的信息结构。
基本问题包括:
表示对象并自动创造视见画面的有效方法是什么?
接收输入或给出输出的有效方法是什么?
怎样使错误理解及其后的人的差错导致的危险减到最小限度?
怎样用图形和其他工具通过存储在数据集中的信息去理解自然现象?
1.理论
人机通信理论的主要部分是:
(1)二维和高维几何,包括解析几何、投影几何,仿射几何和计算几何。
(2)着色理论。
(3)认知心理学。
(4)傅利叶分析、线性代数、图论,自动机、物理和分析等支撑领域。
2.抽象
人机通信领域抽象的主要部分是;
(1)画面显示算法,包括解决以下问题的方法:光滑化、浓淡渐变(shading)、隐藏线、声线描迹、隐藏面、透明面、阴影、明暗分布、边缘、
着色图、样条表示、透视图、纹理化、防误认、统一性、动画片、画面作为对象的分级表示。
(2)计算机辅助设计(CAD)模型。
(3)实体对象的计算机表示。
(4)图象处理和增强方法。
(5)人机通信,包括为减少人为错误和提高人的生产率而引入的交互方式的心理学研究。
3.设计
人机通信领域设计与实现的主要部分是:
(1)图形算法在各种图形装置上的实现,这些图形装置包括向量和光栅显示和许多硬拷贝装置。
(2)不断增多的模型和现象的实验性的图形算法的设计与实验。
(3)在显示中彩色图的适当使用;在显示和硬拷见装置上彩色的精确重现。
(4)图形标准(如GKS,PIHGS,VDI),图形语言有(如PostScript),和特殊图形包(如化学的MOGLI)。
(5)各种用户接口技术的实现,包括位映象装置上的直接处理和字符装置的屏蔽技术。
(6)为了不同系统和机器之间信息传送的各种标准文件交换格式的实现。
(7)工作CAD 系统。
(8)工作图象增强系统(如在从空间探测接收来的画面JPL 上)。
12 致 谢
许多人对本报告的原稿慷慨地提出了书面意见,虽然无法采纳所有这些意见,但我们在修改原稿时确实考虑了每一条意见。谨对下列各位提出的意见表示感谢。
13 参考文献
[1] Abelson,II..and Sussman,G.Structure and Interpretation of Computer Programs. MIT Press,Cambridge,Mass.,1985
[2]Arden.B..cd. See What Can BeAutomated? Report of the NFS Computer Science and Engineering ResearchStudy(COSERS).MIT Press. Cambridge,Mass.,1980
[3]Denning,P.What is computer science? Am..Sci.73(Jan.Feb.1985)16-19
[4]Flores.F.,and Craves,M.Education(working paper available from Logonet,lnc.,2200 Powell Street,11th .Floor,Emeryville,Calif.94608)
[5]Newell,A.,Perlis,A.,and Simon,H.What is computer science?Sci.157(1967)1373-1374)reprinted in Abacus 4,4(Summer 1987),32)
COMPUTING_AS_A_DISCIPLINE.pdf
[备注]
本文仅作个人学习之用,原文由中科院计算所的闵应骅老师翻译。