1. 找回并完善README.md; 2. 使用LaTeX自动索引。

This commit is contained in:
Xiaoxing Ma 2019-09-30 21:37:35 +08:00
parent ec3cd307a5
commit eb5385bc85
4 changed files with 52 additions and 4 deletions

3
.gitignore vendored
View File

@ -4,3 +4,6 @@ main.toc
main.pdf
main.bbl
main.blg
main.idx
main.ilg
main.ind

View File

@ -1,6 +1,8 @@
% !TEX root = main.tex
\section{引言}
软件是以计算为核心手段实现应用目标和价值的解决方案。从1966年首届图灵奖至2018年的53次颁奖中属于软件领域的有37次69.8\%其中以程序设计语言、编译和操作系统为主获奖的有22次获奖还有4次数据库获奖。作为本书第一部分的开篇本章将简要回顾软件和软件技术的发展历程通过梳理软件发展脉络总结软件学科的基本内涵、关键问题、研究方法和发展规律为第二部分学科发展战略提供基础。
软件\index{软件}是以计算为核心手段实现应用目标和价值的解决方案。从1966年首届图灵奖至2018年的53次颁奖中属于软件领域的有37次69.8\%其中以程序设计语言、编译和操作系统为主获奖的有22次获奖还有4次数据库获奖。作为本书第一部分的开篇本章将简要回顾软件和软件技术的发展历程通过梳理软件发展脉络总结软件学科的基本内涵、关键问题、研究方法和发展规律为第二部分学科发展战略提供基础。
\section{软件发展简史}
\subsection{人力/机械计算时代}
@ -48,7 +50,8 @@ Computer一词历史上出现在1613年用来指完成演算或计算的人
“软件”一词最早出现在1953年兰德公司R.R. Carhart的报告中用来说明讨论可靠性时与硬件相对应的“人因”。而人们现在一般认为“软件”的术语来自John W. Tukey在1958年的论文。文中指出 “软件由精心编写的解释程序、编译器和自动编程等组成它们至少象电容器、晶体管、电线和磁带等现代计算机硬件一样重要”。1968年或许是巧合出现两个软件发展史上的重大事件。一是软件与硬件的解绑二是软件工程会议的召开。这两个事件的背景都与IBM著名的IBM S/360系统相关。
软件依附在硬件之上解决应用问题。早期的计算机系统中硬件和软件时捆绑的。所谓“捆绑”指IBM在收费上采取只考虑硬件价格而软件和系统服务免费的策略。这在当时对于用户是很有吸引的也增强了公司的竞争力。到1964 年情况发生了变化IBM宣布了新的IBM S/360系列希望能够升级硬件系统而不需要替换或改变用户的应用程序。而稍后RCA也宣布了其新的Spectra 70系统与IBM 360兼容。这使得IBM难以阻止RCA在市场上“免费”使用IBM的软件。1968年IBM宣布了其软件和硬件系统的解绑改变了软件的商业和竞争模式。自此软件从计算机系统中与硬件的剥离获得了可以独立发展的空间。可以看到除了商业上的反垄断和市场竞争因素外软件本质上“解决方案”的独立性和计算平台抽象为解绑提供了历史必然和技术可行。自此人们逐步认识到软件是计算机系统的灵魂它向下管理计算机系统的各类资源向上满足用户对计算机系统的应用需求。
第二个事件是软件工程的兴起。计算机能力的快速提高和软件复杂性困难出现了“软件危机”现象例如IBM 360操作系统OS/360的进度、开销和可靠性均不尽人意。NATO在1968年举行了首次软件工程会议人们逐渐认识到需要如同其他领域的工程方法一样系统化地进行软件开发。正如Margaret Hamilton在开发阿波罗在轨飞行和导航系统项目中明确指出“我努力使软件具有合法性使得构造软件的活动要受到应有的尊重因而我开始用软件工程将其与硬件和其他类型的工程区分开来成为整个系统工程的一部分”。软件工程的出现不仅激活了软件发展的巨大活力也隐喻了软件发展的外在驱动力不断增长的应用需求和不断增长的计算能力。
第二个事件是软件工程\index{软件工程}的兴起。计算机能力的快速提高和软件复杂性困难出现了“软件危机”现象例如IBM 360操作系统OS/360的进度、开销和可靠性均不尽人意。NATO在1968年举行了首次软件工程会议人们逐渐认识到需要如同其他领域的工程方法一样系统化地进行软件开发。正如Margaret Hamilton在开发阿波罗在轨飞行和导航系统项目中明确指出“我努力使软件具有合法性使得构造软件的活动要受到应有的尊重因而我开始用软件工程将其与硬件和其他类型的工程区分开来成为整个系统工程的一部分”。软件工程的出现不仅激活了软件发展的巨大活力也隐喻了软件发展的外在驱动力不断增长的应用需求和不断增长的计算能力。
\subsection{软件发展的主线}
@ -82,7 +85,7 @@ Computer一词历史上出现在1613年用来指完成演算或计算的人
\section{软件学科的内涵、发展规律和基本架构}
\subsection{内涵与学科特征}
软件作为计算平台上实现应用价值的解决方案,是最存粹的人工制品,其内涵特征包括了三个方面:
软件作为计算平台上实现应用价值的解决方案,是最存粹的人工制品,其内涵特征包括了三个方面[4]
\begin{itemize}
\item [-] 功能性:以何种结构和行为
\item [-] 目的性:达成什么应用目的

38
README.md Normal file
View File

@ -0,0 +1,38 @@
# 软件科学与工程学科发展战略
软件学科发展战略协作编辑repo
## repo协作注意事项
1. 秘书组负责维护master
2. 各章节作者请fork自己的分支在自己的分支上更新欢迎对其他各章提出修改建议可以在自己的分支上直接修改
3. 各章作者完成一个milestone后请通知秘书组审核分支修改并merge到master中。
## 编译方法
1. 建议使用TexLive 2019发行版。
2. 请使用 XeLaTeX 编译,以便更好地支持中文排版。
## LaTeX编写注意事项
1. 目前参考文献尚未处理,各章自己维护即可;回头统一处理。
2. 请各位注意在阐述重要概念、使用重要概念时添加 \index 标注; 例如 “软件\index{软件}是以计算为核心手段实现应用目标和价值的解决方案。”、“第二个事件是软件工程\index{软件工程}的兴起”。
## 各章文件对照关系
* 八千字摘要 软件科学与工程学科发展战略(摘要): Ch0-1-Abstract
* 第一篇 第一章 软件学科历史回顾: Ch1-1-History
* 第一篇 第二章 程序语言与理论: Ch1-2-ProgrammingLanguage
* 第一篇 第三章 系统软件: Ch1-3-SystemSoftware
* 第一篇 第四章 软件工程: Ch1-4-SoftwareEngineering
* 第一篇 第五章 软件产业: Ch1-5-SoftwareIndustry
* 第二篇 第一章引言: Ch2-1-Overview
* 第二篇 第二章 软件理论: Ch2-2-SoftwareTheory
* 第二篇 第三章 软件语言: Ch2-3-SoftwareLanguage
* 第二篇 第四章 软件开发方法与技术: Ch2-4-DevelopmentMethodology
* 第二篇 第五章 操作系统与运行平台: Ch2-5-OperatingSystem
* 第二篇 第六章-数据管理: Ch2-6-DataManagement
* 第二篇 第七章 面向领域的应用软件系统: Ch2-7-DomainApplication
* 第二篇 第八章软件质量与安全保障: Ch2-8-Quality&Security
* 第二篇 第九章 软件生态: Ch2-9-SoftwareEcosystem
* 第二篇 第十章 软件学科教育: Ch2-10-Education

View File

@ -8,6 +8,9 @@
\usepackage{booktabs}
\usepackage{makecell}
\usepackage{subfigure}
\usepackage{imakeidx}
\makeindex
\title{软件科学与工程学科发展战略}
\author{梅宏~~等 \\ \emph{中国科学院}}
@ -23,7 +26,7 @@
\chapter*{ 软件科学与工程学科\\发展战略(摘要) }
\addcontentsline{toc}{chapter}{软件科学与工程学科发展战略(摘要)}
\input{Ch0-1-Abstract.tex}
\input{Ch0-1-Abstract}
\mainmatter
@ -80,6 +83,7 @@
\part{软件学科发展建议}
and so on
\printindex
\end{document}