add references to Ch2-1
This commit is contained in:
parent
397ac10192
commit
f6d9341c9d
|
@ -5,10 +5,6 @@
|
|||
|
||||
%\footnote{这里所谓人是指系统中的人类参与者及其社会关系,机是指计算平台和信息空间的数据、软件服务等各种资源,物是指数字化的设备装置和可传感的物品。或曰“信息-物理-社会”三元融合系统。}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
软件学科历史回顾和发展规律论证了:软件是以计算为核心手段实现应用目标的解决方案;软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科~\cite{Wirth:2008:BHS:1449571.1449577}。其带来的是一种人类思维的创新,以人机共融的方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张、软件计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。
|
||||
|
||||
|
@ -18,19 +14,19 @@
|
|||
|
||||
软件成为人类社会基础设施是社会信息化进程不断加深的必然结果,其技术基础是“计算的泛在化”和“软件定义一切”。
|
||||
|
||||
“计算的泛在化”是指计算变得无处不在而又无迹可寻。互联网和其他网络(包括电信网、移动网、物联网等)的交汇融合,进一步推动了人类社会、信息空间、物理世界的融合。计算设备、网络设备、存储设备与各类传感器设备、判断设备、决策设备、作动设备所形成的数量众多、大大小小的平台互联融合,成为一体;与此同时,对于所服务的用户而言,计算自然融入人类生产、生活活动环境和过程之中,无需关注,不着痕迹,形成新的人机物融合计算环境。人机物融合标志着我们从终端互联、用户互联、应用互联开始走向万物互联,信息技术及其应用更加无处不在,“大数据”现象随之产生,信息化的第三波浪潮正在开启。
|
||||
“计算的泛在化”是指计算变得无处不在而又无迹可寻~\cite{SciAme91}。互联网和其他网络(包括电信网、移动网、物联网等)的交汇融合,进一步推动了人类社会、信息空间、物理世界的融合。计算设备、网络设备、存储设备与各类传感器设备、判断设备、决策设备、作动设备所形成的数量众多、大大小小的平台互联融合,成为一体;与此同时,对于所服务的用户而言,计算自然融入人类生产、生活活动环境和过程之中,无需关注,不着痕迹,形成新的人机物融合计算环境。人机物融合标志着我们从终端互联、用户互联、应用互联开始走向万物互联,信息技术及其应用更加无处不在,“大数据”现象随之产生,信息化的第三波浪潮正在开启。
|
||||
|
||||
“软件定义”是指软件以平台化的方式,向下管理各种资源,向上提供编程接口,其核心途径是资源虚拟化以及功能可编程。需要注意的是,“软件定义”与“软件化”是不同的两个概念。“软件化”仅仅描述了根据业务需求来开发具有相应功能的软件应用系统的过程;而“软件定义”则是一种技术手段,其关注点在于将底层基础设施资源进行虚拟化并开放API,通过可编程的方式实现灵活可定制的资源管理,适应上层业务系统的需求和变化。“软件定义一切”则将软件平台所管理的资源和提供的编程抽象泛化到包括计算、存储、网络、软件服务等在内的各类计算资源、包括各种数字化机电设备和可传感物体对象在内的各类物理资源、乃至可通过激励机制调配的人力资源。软件定义可递归分层,形成一种生长式、演化式的可扩展体系。这种软件定义的人机物融合平台逐渐呈现了“泛在操作系统”的发展方向~\cite{mei2018toward}。
|
||||
|
||||
“软件定义一切”实质上是通用可编程思想在各个领域的应用,是一种以软件实现分层抽象的方式来驾驭复杂性的方法论。数字化使得几乎所有的设备都包含了独立或者集成的计算设备,完成“感知、判断、控制、作动”闭环的部分或者全部。这个改变是信息化发展的基础,使得现代设备或装置往往都具备编程控制的能力,推动了人们基于通用计算机的思维架构(人们将其总结成计算思维)来理解和求解各领域问题。可见,“软件定义一切”(SDX)意味着构造针对“X”的“操作系统”。未来的面向人机物融合的软件平台,就是对海量异构基础设施资源进行按需、深度软件定义而形成的“泛在”操作系统(Ubiquitous Operating System)。
|
||||
“软件定义”是指软件以平台化的方式,向下管理各种资源,向上提供编程接口,其核心途径是资源虚拟化以及功能可编程~\cite{cccf15}。需要注意的是,“软件定义”与“软件化”是不同的两个概念。“软件化”仅仅描述了根据业务需求来开发具有相应功能的软件应用系统的过程;而“软件定义”则是一种技术手段,其关注点在于将底层基础设施资源进行虚拟化并开放API,通过可编程的方式实现灵活可定制的资源管理,适应上层业务系统的需求和变化。“软件定义一切”则将软件平台所管理的资源和提供的编程抽象泛化到包括计算、存储、网络、软件服务等在内的各类计算资源、包括各种数字化机电设备和可传感物体对象在内的各类物理资源、乃至可通过激励机制调配的人力资源。软件定义可递归分层,形成一种生长式、演化式的可扩展体系。这种软件定义的人机物融合平台逐渐呈现了“泛在操作系统”的发展方向~\cite{mei2018toward}。
|
||||
|
||||
“软件定义一切”实质上是通用可编程思想在各个领域的应用,是一种以软件实现分层抽象的方式来驾驭复杂性的方法论。数字化使得几乎所有的设备都包含了独立或者集成的计算设备,完成“感知、判断、控制、作动”闭环的部分或者全部。这个改变是信息化发展的基础,使得现代设备或装置往往都具备编程控制的能力,推动了人们基于通用计算机的思维架构(人们将其总结成计算思维~\cite{SIGCSE07CompThinking})来理解和求解各领域问题。可见,“软件定义一切”(SDX)意味着构造针对“X”的“操作系统”。未来的面向人机物融合的软件平台,就是对海量异构基础设施资源进行按需、深度软件定义而形成的“泛在”操作系统(Ubiquitous Operating System)。
|
||||
|
||||
\section{软件学科范畴的拓展}
|
||||
|
||||
作为一门方法论学科,软件学科拓展的驱动力来自软件应用范围扩张、计算平台的泛化和软件方法技术本身发展三个方面。
|
||||
|
||||
从软件应用范围扩张的角度看,正如上文所述,计算日益变得无处不在,“人-机-物”三元融合不断深入。在此趋势下,从宏观上看,软件从实现计算的工具逐步转变为信息社会不可或缺的基础设施;从微观上看,软件的角色也从负责应用过程中孤立、确定的信息处理环节,转变为负责定义并协同整个应用涉及的“人-机-物”各类资源,实现应用价值。软件作为系统解决方案,涉及的范畴扩展到各类物理设备、物品和人类的主观体验与价值实现;因而软件学科无可避免地涉及到控制科学、系统科学以及心理学、管理学、社会学等范畴的问题,并以软件学科自身的方法论将其内化和拓展。
|
||||
从软件应用范围扩张的角度看,正如上文所述,计算日益变得无处不在,“人-机-物”三元融合不断深入~\cite{jos19ma}。在此趋势下,从宏观上看,软件从实现计算的工具逐步转变为信息社会不可或缺的基础设施;从微观上看,软件的角色也从负责应用过程中孤立、确定的信息处理环节,转变为负责定义并协同整个应用涉及的“人-机-物”各类资源,实现应用价值。软件作为系统解决方案,涉及的范畴扩展到各类物理设备、物品和人类的主观体验与价值实现;因而软件学科无可避免地涉及到控制科学、系统科学以及心理学、管理学、社会学等范畴的问题,并以软件学科自身的方法论将其内化和拓展。
|
||||
|
||||
从软件依赖的计算平台泛化的角度看,计算平台已经从传统的集中式单机发展到并行与分布式平台,再到今天的“云-边-端”异构多态计算平台。这个网络化计算平台不仅包括传统的互联网,还融合了传感网、物联网、移动互联网、社交网等,标志着计算平台不断向物理世界和人类社会快速延伸,形成了一种泛化的计算平台。软件定义技术为这个“人-机-物”融合的平台提供可编程计算抽象。同时,这个计算平台也使得关于“人-机-物”融合的应用场景的海量数据不断被收集、处理和积累,成为平台上的重要资源。软件作为应用解决方案,在这个计算平台之上利用数据资源,协同人机物,实现应用价值;同时也通过在这个平台上提供服务,并进一步积累数据,从而不断拓展这个计算平台。
|
||||
从软件依赖的计算平台泛化的角度看,计算平台已经从传统的集中式单机发展到并行与分布式平台,再到今天的“云-边-端”异构多态计算平台~\cite{jos19dongcha}。这个网络化计算平台不仅包括传统的互联网,还融合了传感网、物联网、移动互联网、社交网等,标志着计算平台不断向物理世界和人类社会快速延伸,形成了一种泛化的计算平台。软件定义技术为这个“人-机-物”融合的平台提供可编程计算抽象。同时,这个计算平台也使得关于“人-机-物”融合的应用场景的海量数据不断被收集、处理和积累,成为平台上的重要资源。软件作为应用解决方案,在这个计算平台之上利用数据资源,协同人机物,实现应用价值;同时也通过在这个平台上提供服务,并进一步积累数据,从而不断拓展这个计算平台。
|
||||
|
||||
从软件方法技术发展的角度看,当前软件的基本形态、所实现的逻辑推理形式、软件开发的隐喻(metaphor)模式、软件的生态环境、元级方法论都在发生深刻的改变。软件的基本形态从计算机硬件的附属品到独立的软件产品,再到云化的软件服务,继而转变为无处不在而又无迹可寻的泛在服务。软件所实现的逻辑推理形式在基于规则的演绎之上发展出数据驱动的归纳,统计机器学习技术就是后者的典型表现。软件开发的隐喻模式经历了从实现数学计算到模拟物理世界,再到虚实融合创造的转变。对软件作为客体对象的考察从以个体及其生产使用为主扩展到在生态的层面上考虑软件及其利益相关者群体的竞争、协作等社会性特征。在元级方法论层面,正从以还原论为主向系统论发展,软件作为解决方案越来越多地被视为开放环境中的复杂适应系统,而不是封闭规约下的确定行为系统。
|
||||
|
||||
|
@ -39,7 +35,7 @@
|
|||
|
||||
\section{软件科学的新理解}
|
||||
|
||||
一般而言,驾驭系统固有复杂性的基本途径是有效抽象和层次分解。与其他人工制品不同,软件是纯粹的逻辑产品,原则上只受能行可计算的限制,可以实现最纯粹的抽象,也可以支持最具扩展性的层次分解。回顾软件学科的发展,贯穿始终的主题是围绕建立抽象、实现抽象和使用抽象,以软件范型基础,软件构造方法、软件运行支撑、软件度量和质量评估相互促进、螺旋上升的过程。由于软件在应对复杂性方面具有独特优势,软件成为了各类复杂应用系统的“万能集成器”,也成为了各类人造复杂系统的核心,并且这些系统的复杂性往往集中体现为软件的复杂性。
|
||||
一般而言,驾驭系统固有复杂性的基本途径是有效抽象和层次分解~\cite{tse86ood}。与其他人工制品不同,软件是纯粹的逻辑产品,原则上只受能行可计算的限制,可以实现最纯粹的抽象,也可以支持最具扩展性的层次分解。回顾软件学科的发展,贯穿始终的主题是围绕建立抽象、实现抽象和使用抽象,以软件范型基础,软件构造方法、软件运行支撑、软件度量和质量评估相互促进、螺旋上升的过程。由于软件在应对复杂性方面具有独特优势,软件成为了各类复杂应用系统的“万能集成器”,也成为了各类人造复杂系统的核心,并且这些系统的复杂性往往集中体现为软件的复杂性。
|
||||
|
||||
在软件作为基础设施、软件定义一切的背景下,软件进一步成为构造开放环境下复杂系统的关键。在展望软件学科在新时代所面临的挑战与机遇之前,我们首先在元级方法学,也就是研究方法学的层面上讨论观察软件学科内涵的若干新视角,包括以驾驭复杂性为目标的系统观、以泛在服务和持续演化为特征的形态观、以使用质量为核心的价值观、以及关注群体协作平衡的生态观。
|
||||
|
||||
|
@ -47,7 +43,7 @@
|
|||
|
||||
所谓软件学科的系统观,有三层含义。
|
||||
|
||||
第一层含义是复杂系统。现代软件系统的复杂性体现在其前所未有的代码规模、软件处理的数据量、软件用户量和使用的多样性、软件通过网络形成的连接量和种类、涉及承载运行的计算和物理设备量和种类等方面,也体现在其所处环境的开放性和由于“人在回路”所带来的不确定性。这使得看待软件的视角从封闭静态环境下的确定行为系统向开放动态环境中的可适应、可成长的系统、从单体系统向系统之系统转变。
|
||||
第一层含义是复杂系统。现代软件系统的复杂性体现在其前所未有的代码规模、软件处理的数据量、软件用户量和使用的多样性、软件通过网络形成的连接量和种类、涉及承载运行的计算和物理设备量和种类等方面,也体现在其所处环境的开放性和由于“人在回路”所带来的不确定性~\cite{computer13human}。这使得看待软件的视角从封闭静态环境下的确定行为系统向开放动态环境中的可适应、可成长的系统、从单体系统向系统之系统转变。
|
||||
|
||||
第二层含义是系统论。对于上述复杂软件系统,常常难以用其组成部件的性质去解释其整体性质。此时单纯依赖还原论方法难以驾驭其复杂性,需要借鉴系统论方法,超越还原论。
|
||||
|
||||
|
|
120
references.bib
120
references.bib
|
@ -11,6 +11,27 @@ doi={10.1109/MC.2006.58},
|
|||
ISSN={1558-0814},
|
||||
month={Feb},}
|
||||
|
||||
@article{cpss10wang,
|
||||
author = {Wang, Fei-Yue},
|
||||
title = {The Emergence of Intelligent Enterprises: From CPS to CPSS},
|
||||
journal = {IEEE Intelligent Systems},
|
||||
issue_date = {July 2010},
|
||||
volume = {25},
|
||||
number = {4},
|
||||
month = jul,
|
||||
year = {2010},
|
||||
issn = {1541-1672},
|
||||
pages = {85--88},
|
||||
numpages = {4},
|
||||
url = {https://doi.org/10.1109/MIS.2010.104},
|
||||
doi = {10.1109/MIS.2010.104},
|
||||
acmid = {1845858},
|
||||
publisher = {IEEE Educational Activities Department},
|
||||
address = {Piscataway, NJ, USA},
|
||||
keywords = {cyber-physical-social systems, cyberphycial systems, intelligent systems},
|
||||
}
|
||||
|
||||
|
||||
|
||||
@book{Booch:1999:UML:291167,
|
||||
author = {Booch, Grady and Rumbaugh, James and Jacobson, Ivar},
|
||||
|
@ -612,6 +633,15 @@ year = {2018},
|
|||
}
|
||||
|
||||
|
||||
@article{SciAme91,
|
||||
author = {M. Weiser},
|
||||
title = {The computer for the 21st century},
|
||||
journal = {Scientific American},
|
||||
pages = {94-105},
|
||||
volume = {265},
|
||||
number = {3},
|
||||
year = {1991},
|
||||
}
|
||||
|
||||
@book{Naur:1969:SER:1102020,
|
||||
editor = {Naur, Peter and Randell, Brian},
|
||||
|
@ -934,6 +964,27 @@ year = {1937}
|
|||
year={1999},
|
||||
}
|
||||
|
||||
|
||||
@article{jos19dongcha,
|
||||
title={系统软件新洞察},
|
||||
author={王怀民 and 毛晓光 and 丁博 and 沈洁 and 罗磊 and 任怡},
|
||||
journal={软件学报},
|
||||
volume={30},
|
||||
number={1},
|
||||
pages={22-32},
|
||||
year={2019},
|
||||
}
|
||||
|
||||
|
||||
@article{jos19ma,
|
||||
title={软件开发方法发展回顾与展望},
|
||||
author={马晓星 and 刘譞哲 and 谢冰 and 余萍 and 张天 and 卜磊 and 李宣东},
|
||||
journal={软件学报},
|
||||
volume={30},
|
||||
number={1},
|
||||
pages={3-21},
|
||||
year={2019},
|
||||
}
|
||||
|
||||
@article{梅宏2009软件分析技术进展,
|
||||
title={软件分析技术进展},
|
||||
|
@ -974,7 +1025,31 @@ year = {1937}
|
|||
year={1976},
|
||||
publisher={IEEE}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@article{computer13human,
|
||||
author = {Gunar Schirner and
|
||||
Deniz Erdogmus and
|
||||
Kaushik R. Chowdhury and
|
||||
Taskin Padir},
|
||||
title = {The Future of Human-in-the-Loop Cyber-Physical Systems},
|
||||
journal = {{IEEE} Computer},
|
||||
volume = {46},
|
||||
number = {1},
|
||||
pages = {36--45},
|
||||
year = {2013},
|
||||
}
|
||||
|
||||
@article{tse86ood,
|
||||
title={Object-oriented development},
|
||||
author={Grady Booch},
|
||||
journal={IEEE Transactions on Software Engineering},
|
||||
volume={SE-12},
|
||||
number={2},
|
||||
pages={211-221},
|
||||
year={1986},
|
||||
publisher={IEEE}
|
||||
}
|
||||
|
||||
@inproceedings{xanthakis1992application,
|
||||
title={Application of genetic algorithms to software testing},
|
||||
|
@ -1096,21 +1171,15 @@ year = {1937}
|
|||
publisher={Springer}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@article{cccf15,
|
||||
title={从软件研究者的视角认识“软件定义”},
|
||||
author={梅宏 and 黄罡 and 曹东刚等},
|
||||
journal={中国计算机学会通讯},
|
||||
volume={11},
|
||||
number={1},
|
||||
pages={68-72},
|
||||
year={2015},
|
||||
}
|
||||
|
||||
@inproceedings{Liskov:1974:PAD:800233.807045,
|
||||
author = {Liskov, Barbara and Zilles, Stephen},
|
||||
|
@ -2519,6 +2588,25 @@ author = {CIO Staff}
|
|||
pages={51},
|
||||
year={2019}
|
||||
}
|
||||
@inproceedings{SIGCSE07CompThinking,
|
||||
author = {Henderson, Peter B. and Cortina, Thomas J. and Wing, Jeannette M.},
|
||||
title = {Computational Thinking},
|
||||
booktitle = {Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education},
|
||||
series = {SIGCSE '07},
|
||||
year = {2007},
|
||||
isbn = {1-59593-361-1},
|
||||
location = {Covington, Kentucky, USA},
|
||||
pages = {195--196},
|
||||
numpages = {2},
|
||||
url = {http://doi.acm.org/10.1145/1227310.1227378},
|
||||
doi = {10.1145/1227310.1227378},
|
||||
acmid = {1227378},
|
||||
publisher = {ACM},
|
||||
address = {New York, NY, USA},
|
||||
keywords = {computational thinking},
|
||||
}
|
||||
|
||||
|
||||
@article{wing2014computational,
|
||||
title={Computational thinking benefits society},
|
||||
author={Wing, Jeannette M},
|
||||
|
|
Loading…
Reference in New Issue