信息系统的开发与管理教程 中国人民大学左美云 zuomyaruc.edu.cn
信息系统的开发与管理教程 中国人民大学 左美云 zuomy@ruc.edu.cn
第三章
第三章
软件技术
一 、软件技术
软件的定义和特征 ·计算机软件是计箅机程序加上该程序的各种 文档。 计算机软件的特征 软件是一种逻辑性系统元素。 软件具有开发成本高、复制成本低的特点。 软件“磨损”的绝对性和相对性 尽管软件不会磨损,但它会退化 软件维护复杂。 由于软件无备用元素可供替换,因而软件维护非常复 杂
软件的定义和特征 • 计算机软件是计算机程序加上该程序的各种 文档。 • 计算机软件的特征 –软件是一种逻辑性系统元素。 –软件具有开发成本高、复制成本低的特点。 –软件“磨损”的绝对性和相对性。 • 尽管软件不会磨损,但它会退化。 –软件维护复杂。 • 由于软件无备用元素可供替换,因而软件维护非常复 杂
软件的种类 系统软件 操作系统 语言处理程序 服务性程序 数据库管理系统 网络通信管理程序 应用软件 实用程序 工具软件
软件的种类 • 系统软件 –操作系统 –语言处理程序 –服务性程序 –数据库管理系统 –网络通信管理程序 • 应用软件 –实用程序 –工具软件
软件技术发展过程 60年代高级语言阶段 20世纪50年代末, FORTRAN的编译系统 COBOL,LISP,PL/1和 ALGOL68等高级语言 此阶段,编译技术代表了整个软件技术 70年代结构化程序设计阶段 “软件危机” 程序设计方法学 软件工程 80年代至今自动程序设计阶段 向集成化、一体化方向发展 CASE (computer aided software engineering 4GL和面向对象程序设计方法,如C++
软件技术发展过程 • 60年代高级语言阶段 –20世纪50年代末,FORTRAN的编译系统 –COBOL,LISP,PL/1和ALGOL68等高级语言 –此阶段,编译技术代表了整个软件技术 • 70年代结构化程序设计阶段 – “软件危机” –程序设计方法学 –软件工程 • 80年代至今自动程序设计阶段 –向集成化、一体化方向发展。 –CASE(computer aided software engineering) –4GL和面向对象程序设计方法,如C++
数据结构的基本概念与术语 数据 ·数据元素,是数据的基本单位。记录、结点 数据项:是数据的不可分割的最小单位 数据对象:是具有相同性质的数据元素集合。 数据结构:即数据的组织形式 数据的逻辑结构 数据的存储结构 数据的运算 数据类型 基本数据类型。如整型、实型、布尔型 结构数据类型。如数组、结构体
数据结构的基本概念与术语 • 数据 • 数据元素,是数据的基本单位。记录、结点。 • 数据项:是数据的不可分割的最小单位。 • 数据对象:是具有相同性质的数据元素集合。 • 数据结构:即数据的组织形式 –数据的逻辑结构 –数据的存储结构 –数据的运算 • 数据类型 –基本数据类型。如整型、实型、布尔型 –结构数据类型。如数组、结构体
算法描述与算法分析 算法是由若干条指令组成的有穷序列 *算法可用自然语言、数学语言或约定的符号语言来 描述 *若一个算法用机器可执行的语言来书写,则它就是 个程序 所有算法均以函数或过程的形式表示,即:算法名 (参数表) 例: ins sqlist(V,i,b)//在顺序表V中第i个数据元素之 前插入b// 不同的算法应该比较 *“正确” 米时间复杂度 空间复杂度
算法描述与算法分析 * 算法是由若干条指令组成的有穷序列。 * 算法可用自然语言、数学语言或约定的符号语言来 描述。 * 若一个算法用机器可执行的语言来书写,则它就是 一个程序。 * 所有算法均以函数或过程的形式表示,即:算法名 (参数表) * 例:ins_sqlist(V,i,b)//在顺序表V中第i个数据元素之 前插入b// * 不同的算法应该比较 * “正确” * 时间复杂度 * 空间复杂度
线性表的定义 线性表是n(n≥0)个数据元素(结点)a1,a2,…,an 组成的有限序列 例如学生成绩表(学号,姓名,各科成绩,平均成 绩 其中数据元素的个数n定义为表的长度。 n=0时称空表,常常将非空的线性表(n>0)记作 a 1,a2 内部结点a;(2≤i≤n-1)都有且仅有一个直接前趋 a1-1和一个直接后继a+1 ·线性表中结点之间的逻辑关系就是上述的邻接关系, 由于该关系是线性的,因此线性表是一种线性结构
线性表的定义 • 线性表是n(n≥0)个数据元素(结点)a1,a2, …,an 组成的有限序列。 • 例如学生成绩表(学号,姓名,各科成绩,平均成 绩) • 其中数据元素的个数n定义为表的长度。 • n=0时称空表,常常将非空的线性表(n>0)记作 (a1,a2, …,an) • 内部结点ai(2≤i≤n-1)都有且仅有一个直接前趋 ai-1和一个直接后继ai+1 • 线性表中结点之间的逻辑关系就是上述的邻接关系, 由于该关系是线性的,因此线性表是一种线性结构
线性表的运算与存储 数据的运算是定义在逻辑结构上的,而运算 的具体实现则是在存贮结构上进行的。 对于线性表,常见的基本运算有以下几种: 存取操作 插入操作 删除操作 查找操作 排序操作 线性表的存贮结构 顺序存储结构 链式存储结构
线性表的运算与存储 • 数据的运算是定义在逻辑结构上的,而运算 的具体实现则是在存贮结构上进行的。 • 对于线性表,常见的基本运算有以下几种: –存取操作 –插入操作 –删除操作 –查找操作 –排序操作 • 线性表的存贮结构 –顺序存储结构 –链式存储结构