diff --git a/.gitignore b/.gitignore index d888a0e..db5d703 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ main.aux main.synctex.gz main.toc +main.pdf +main.bbl +main.blg diff --git a/Ch0-1-Abstract.tex b/Ch0-1-Abstract.tex index 886015c..194a662 100644 --- a/Ch0-1-Abstract.tex +++ b/Ch0-1-Abstract.tex @@ -1,19 +1,19 @@ % !TEX root = main.tex -\chapter[软件科学与工程学科发展战略(摘要)]{ 软件科学与工程学科\\发展战略(摘要) } +%\chapter[软件科学与工程学科发展战略(摘要)]{ 软件科学与工程学科\\发展战略(摘要) } \epigraph{软件承载着我们的文明。\\Our civilization runs on software.}{Bjarne Stroustrup} 这是摘要八千字 -软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 - -软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 - -软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 - -软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 - -软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 - -软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 \ No newline at end of file +%软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 +% +%软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 +% +%软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 +% +%软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 +% +%软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 +% +%软件是以计算为核心手段实现应用目标的解决方案。软件学科是研究以软件求解应用问题的理论、原则、方法和技术,以及相应的工具支持和生态环境的学科。也就是说,软件学科本质上是一门方法论学科【cite N. Wirth】。其带来的是一种人类思维的创新,以人机共融方式延伸了单纯人脑思维,形成了一种前所未有的创造力。随着软件应用范围的扩张,软件的计算平台的泛化和软件方法技术的发展,软件学科的边界不断拓展,内涵不断深化。本章总论“软件作为基础设施”这一发展趋势,进而以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵。 \ No newline at end of file diff --git a/Ch1-2-ProgrammingLanguage.tex b/Ch1-2-ProgrammingLanguage.tex index bb26a52..7298c35 100755 --- a/Ch1-2-ProgrammingLanguage.tex +++ b/Ch1-2-ProgrammingLanguage.tex @@ -1,4 +1,4 @@ - +% !TEX root = main.tex \section{引言} 软件工程师在开发软件系统时,不可避免地要用到某种程序设计语言。顾名思义,程序设计语言是程序员用来描述程序行为的语言。在计算机科学领域,曾出现过数百种程序设计语言。TIOBE给出目前常用程序设计语言的流行度排序,从高到低有:Java、C、Python、C++、C\#、JavaScript、PHP等[23]。Sebesta[1]从高级语言机制的设计角度对程序设计语言进行了深入细致的介绍和比较。大多数新程序设计语言的创建都受以前语言概念的启发。较旧的语言仍然是新语言的坚实基础,而新出现的程序设计语言使程序员的工作变得更加简单。 diff --git a/Ch1-3-SystemSoftware.tex b/Ch1-3-SystemSoftware.tex index ae5a08a..5cc6627 100755 --- a/Ch1-3-SystemSoftware.tex +++ b/Ch1-3-SystemSoftware.tex @@ -1,4 +1,4 @@ - +% !TEX root = main.tex \section{系统软件概述} 系统软件是驱动下层计算资源有效运转、为上层应用提供共性支撑的软件,主要包括操作系统、编译系统、中间件和数据库管理系统。其中,操作系统负责管理计算系统软硬件资源、操纵程序运行,为应用软件提供公用支撑;编译系统(又称编译器)负责将源语言编写的源程序翻译为等价的可运行目标程序;中间件将系统软件的概念扩展到网络环境,为分布式应用软件部署、运行和管理提供支撑;数据库管理系统旨在统一管理和维护数据库中的数据,是存储、组织、联接、变换和加载数据的软件。 diff --git a/Ch1-4-SoftwareEngineering.tex b/Ch1-4-SoftwareEngineering.tex index 73f23cf..e1d2c50 100644 --- a/Ch1-4-SoftwareEngineering.tex +++ b/Ch1-4-SoftwareEngineering.tex @@ -1,3 +1,5 @@ +% !TEX root = main.tex + \section{软件工程的诞生} 50年前(1968年)在德国的一个叫做Garmisch的小镇上,由NATO科学委员会主导召开了一个小型研讨会,有来自11个国家的50位代表参加。会议的议题是如何应对当时面临的所谓“软件危机”。在这个研讨会上诞生了“软件工程”这个学科领域[1]。软件危机指,在所需时间内编写出有用且高效的计算机程序存在很大困难。其原因出自,一计算机能力的迅速增长,二希望用软件来解决的现实问题的日益复杂,三当时可以采用的软件开发方法明显不能应对。导致软件的开发出现了许多问题。 diff --git a/main.tex b/main.tex index 59fe5fa..24db3a7 100644 --- a/main.tex +++ b/main.tex @@ -2,19 +2,26 @@ \usepackage{graphicx} \usepackage{epigraph} - +\usepackage{listings} +\usepackage{enumerate} +\usepackage{array} +\usepackage{booktabs} +\usepackage{makecell} +\usepackage{subfigure} \title{软件科学与工程学科发展战略} \author{梅宏~~等 \\ \emph{中国科学院}} - \begin{document} \maketitle \tableofcontents -%\input{Ch0-1-Abstract.tex} + +\chapter*{ 软件科学与工程学科\\发展战略(摘要) } +\addcontentsline{toc}{chapter}{软件科学与工程学科发展战略(摘要)} +\input{Ch0-1-Abstract.tex} \part{软件学科发展回顾} @@ -67,6 +74,8 @@ \input{Ch2-10-Education} \part{软件学科发展建议} -and so so +and so on + +\end{document} + -\end{document} \ No newline at end of file