计算机软件技术基础
1970-1
西安交大
赵英良
333
高等学校非计算机专业计算机基础教学的目标是培养学生利用计算机分析问题、解决问题的意识与能力,提高学生的计算机素质,为将来利用计算机知识与技术解决本专业实际问题打下基础。本书是涉及软件工程、数据结构、操作系统、数据库技术、计算机网络、多媒体等软件开发常用原理、方法和技术的综合性教材。希望读者能够在有限的时间内掌握软件开发最基本的技术和能力,利用这些技术解决本专业的应用问题。本书不仅介绍了软件开发的常用技术和方法,更强调思想方法的训练。例如,第1章“软件工程”部分,不是全部内容的压缩,而只涉及软件开发中的基本技术部分,强调“软件开发”与“程序设计”的不同,让读者从全局的角度去看待软件。又如第3章“操作系统”部分,目的不在于让学生编写操作系统软件,而是了解操作系统是如何解决问题的,希望读者学习操作系统中处理各种问题的方法,将来在自己的应用软件中运用这些方法。
《计算机软件技术基础》是涉及软件工程、数据结构、操作系统、数据库、计算机网络、多媒体等软件开发常用原理、方法和技术的综合性教材。第1章介绍软件开发的过程及每个阶段的任务、解决问题的方法及工具;第2章介绍软件编程中常用的数据结构及算法;第3章介绍操作系统的组成及各部分的管理方法;第4章介绍数据库原理、SQL和数据库的设计;第5章介绍计算机网络的体系结构以及基于web的软件编程方法;第6章介绍流媒体技术和多媒体编程方法。附录给出十个实验供读者练习。 《计算机软件技术基础》结构清晰,例题丰富实用,有较好的系统性,可作为高等学校理、工、经、管等类专软件技术基础课程的教材和教学参考书。
第1章 软件开发方法1.1 软件工程概述1.1.1 软件工程的概念1.1.2 软件开发模型1.2 结构化开发方法1.2.1 需求分析1.2.2 系统设计1.2.3 编码1.2.4 测试和调试1.2.5 维护1.3 面向对象开发方法1.4 软件开发工具与环境1.4.1 软件开发工具1.4.2 软件开发环境1.4.3 CASE技术习题第2章 数据结构及其应用2.1 数据结构的基本概念2.2 线性表2.2.1 顺序表2.2.2 线性链表2.3 栈和队列2.3.1 栈2.3.2 队列2.4 二维数组2.4.1 二维数组的概念及存储2.4.2 矩阵的压缩存储2.4.3 数组应用举例2.5 二叉树和图2.5.1 二叉树的基本概念2.5.2 二叉树的存储及遍历2.5.3 图的基本概念2.5.4 图的存储方式2.5.5 图的遍历2.5.6 树和图的应用2.6 查找和排序2.6.1 查找的基本概念2.6.2 静态查找技术2.6.3 动态查找技术2.6.4 排序的基本概念2.6.5 常用排序方法习题二第3章 操作系统原理3.1 操作系统概述3.1.1 什么是操作系统3.1.2 操作系统的发展3.1.3 操作系统分类3.1.4 操作系统的基本特征3.1.5 用户接口3.2 文件管理3.2.1 文件管理概述3.2.2 文件系统3.2.3 文件系统的组织结构3.2.4 文件管理方法3.3 进程管理3.3.1 进程管理概述3.3.2 进程管理方法3.3.3 进程管理应用3.4 存储器管理3.4.1 存储器管理概述3.4.2 存储分配管理方法3.4.3 存储管理应用3.5 设备管理3.5.1 设备管理概述3.5.2 设备管理任务及方法习题三第4章 数据库技术及应用4.1 数据库系统4.1.1 数据库系统组成4.1.2 关系数据库层次结构4.1.3 数据库系统开发工具4.2 数据模型4.2.1 数据模型的概念4.2.2 E-R模型4.2.3 关系模型4.3 关系规范化4.3.1 函数依赖4.3.2 基于主键的范式和BC范式4.3.3 关系规范化的过程与原则4.4 关系数据库的数据定义与操纵4.4.1 SQL的数据定义4.4.2 SQL的数据查询4.4.3 SQL的连接查询与嵌套查询4.4.4 SQL的数据更新4.4.5 SQL的视图4.5 数据库设计4.5.1 数据库设计概述4.5.2 数据库设计的需求分析4.5.3 数据库概念设计4.5.4 数据库的逻辑设计与物理设计4.6 数据库应用程序设计4.6.1 数据库接口4.6.2 程序中操作数据库习题四第5章 网络软件技术基础5.1 计算机网络基础知识5.1.1 计算机网络的发展5.1.2 网络体系结构5.1.3 IP地址和域名系统5.2 HTML语言简介5.3 脚本语言5.4 动态网页技术5.4.1 ASP技术基础5.4.2 ASP内建对象5.4.3 ADO数据库访问技术5.5 综合实例——电子公告栏5.5.1 公告浏览功能的实现5.5.2 公告管理功能的实现习题五第6章 多媒体软件开发6.1 多媒体软件概述6.1.1 多媒体软件系统6.1.2 多媒体应用软件开发过程6.2 超文本和超媒体6.2.1 超文本和超媒体的组成6.2.2 超文本系统的基本特征6.2.3 超文本系统的结构模型6.3 HTML实现多媒体6.3.1 使用图像和热区6.3.2 使用音频6.3.3 播放视频6.4 流媒体技术6.4.1 流式传输的方式6.4.2 流媒体传输协议6.4.3 流媒体播放方式6.4.4 流媒体文件格式6.5 多媒体编程简介6.5.1 文本的输出和图形的绘制6.5.2 音频的播放6.5.3 显示位图6.5.4 播放视频习题六附录 实验实验1 两个顺序表的建立与合并实验2 用单链表实现学生名册管理实验3 用队列解决斐波那切数列问题实验4 学生成绩的统计与排序实验5 SQL的数据定义实验6 SQL数据查询与操纵实验7 实现一个简单的ASP网页实验8 通过ASP网页查询数据库信息实验9 多媒体资源网站的设计实验10 使用VC绘制函数曲线参考文献
插图:第1章 软件开发方法软件是能够完成预定功能、达到预期性能的可执行的计算机程序和使程序正常执行所需要的数据以及描述程序的操作、使用的文档的集合。我们学过“计算机程序设计”,能够使用某种程序设计语言将待解决的问题描述为合适的计算机的语句序列,经过编译、连接生成计算机可执行的程序,执行它可以完成预期的功能。然而,程序不是软件的全部,软件开发也不仅仅是程序设计或编写程序,它们只是软件和软件开发过程中的一部分。1.1 软件工程概述20世纪60年代以后,计算机的应用领域越来越广,软件规模越来越大,软件中的逻辑关系越来越复杂。人们在开发大型软件系统时遇到了许多困难,有的无法按时完成,有的虽然完成了,但难以对功能进行扩充,有的甚至彻底失败了。人们发现,研制软件系统需要投入大量的人力和物力,但系统的质量却难以保证,也就是说,开发软件所需的高成本同软件的低质量形成尖锐的矛盾,这种现象称为“软件危机”。考虑到机械、建筑等行业经历了从手工艺方式到严密完整的工程科学的演变过程,有人认为大型软件系统的开发也应该向工程化方向发展。1968年,在北大西洋公约组织的学术会议上有人第一次提出了“软件工程”的概念。1.1.1 软件工程的概念软件工程是运用工程学、数学、管理学、计算机科学等学科的概念、原理、技术和方法,为经济地获得可靠且能有效运行的软件而建立的工程原理。1.软件的特征在软件开发和维护过程中存在的问题与软件本身的特点有关。
《计算机软件技术基础》编辑推荐:西安交通大学“十一五”规划教材,高校计算机基础系列教材。