《软件技术基础》之《绪论》
计算机软件开发知识体系
数据结构与算法课程的知识内容,涵盖了软件开发中的数据结构知识、算法设计知识内容。
操作系统知识,涵盖了操作系统结构与软件开发中使用的平台知识,包括进程与存储系统知识。
编译原理知识涵盖了编译的基本概念,文法分析,语法分析等知识点。
数据库原理基础知识,涵盖关系数据库知识、 SQL 语言、查询优化和新型数据库技术。
计算机软件体系
应用软件离不开系统软件与操作系统的支持。
计算机软件开发过程
- 问题的理解:清楚问题的输入、要求、输出;
- 算法设计:包括软件架构设计、模块分解、选择具体算法策略、用适当的方式描述和逐步细化算法步骤;
- 数据结构设计:一方面要选择或设计能有效表示和存储应用问题中所涉及的数据对象的数据结构,同时还要选择或设计能支持算法策略实现的数据结构;
- 算法分析:发现有改进完善之处,返回第二步,重新选择或设计算法与数据结构;
- 程序设计:设计具体的数据存储访问方案、数据结构实现细节、基于某种操作系统设计程序实现细节,在计算机上调试和运行程序;
- 程序实现:用某种计算机程序设计语言,定义数据结构、数据存储、基于某种操作系统编写实现算法的代码,编译代码并在计算机上调试和运行程序,并不断优化程序设计。
前3步称为软件逻辑设计,后3步称为软件程序设计
计算机软件开发的双循环:
软件系统逻辑设计
软件系统核心逻辑
数据结构在计算问题中有两大用途:
- 一是用于存放要处理的数据;
- 二是用于实现算法策略。
与数据有关的4个结论:
- 杂乱的数据不能表达和交流信息;
- 数据之间是有联系的,这些联系常常影响算法的选择和效率;
- 数据之间是有结构的,如线性结构、树状结构、图状结构;
- 在某种数据结构上可以定义一组运算(算法设计就是要研究各类数据结构上的各种运算方法,从而解决计算问题)。
软件程序设计
软件设计及实现
平台级编程+数据管理
程序设计要考虑的问题
程序是在操作系统上的实体。
程序架构:
- 如何在操作系统上开发软件?
- 操作系统具备什么功能?
- 程序对操作系统的依赖性?
- 采用什么样的程序架构?
程序架构的设计需要了解操作系统和编译原理的知识
数据管理:
- 数据如何管理?
数据管理需要了解数据库知识
软件系统运行平台
操作系统的定义
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合 。
操作系统举例
操作系统的主要功能
处理机管理、存储器管理、设备管理、文件管理、用户接口。
处理机处理
按照一定的算法把处理机分配给进程(线程),并对其进行有效的管理和控制。
存储器管理
为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。
设备管理
- 完成用户进程提出的 I/O 请求;
- 为用户进程分配其所需的 I/O 设备;
- 提高 CPU 和 I/O 设备的利用率;
- 提高 I/O 速度 ;
- 方便用使用使 I/O 设备。
文件管理
对用户文件和系统文件进行管理, 以方便用户使用,并保证文件的安全性。
用户接口
提供友好的用户接口以方便用户使用。
系统调用是用户程序取得操作系统服务的唯一途径
软件程序编译
程序需要编译成计算机能够理解的代码才能在操作系统上运行。
软件是运行在操作系统之上的,因此与操作系统息息相关。同一个软件逻辑和程序在不同的操作系统上的实现可能是不同的,其可运行二进制码也是不同的。
程序实现的区别:
可运行二进制码的区别:
依赖操作系统的程序编译方式:
不依赖操作系统的程序编译方式:跨平台开发
Java语言是跨平台的语言,Java虚拟机JVM不是跨平台的。
冯·诺依曼体系结构:一个存储器、一个控制器、一个处理器。
冯·诺依曼体系特点:
- 数据或指令以二进制形式存储;
- 存储程序按顺序执行;
- 存储器的内容可以被修改。
计算机软件数据处理
数据结构确定后,软件的主要工作之一是管理操作结构化的数据。
数据管理的4种方式:
- 手工管理
- 基于文件系统
- 数据库系统
- 分布式数据库系统
手工管理
早期计算机数据处理的应用没有专门管理数据的软件,程序自带数据。
其特点是:
- 数据量小,数据独立性差,不能共享
- 数据冗余(大量重复的数据)
- 无法集中式管理
- 主要用于科学计算
文件系统
数据以文件的形式存放于外存中,数据由文件系统和操作系统统一管理,数据通过程序方式实现操作,其特点是:
- 文件系统是应用程序和数据间的公共接口,统一存取
- 文件由用户自定义,格式和内容不统一,难于共享
- 数据冗余度较大
- 文件系统本身无法解决这些问题
数据库系统
由数据库管理系统(DBMS)实现对于数据的定义、管理和操作。DBMS是用户和数据间的接口,特别是网络和通信技术发展,使异地、异机间的数据共享成为现实。
其特点是:
- 数据能为多用户共享
- 数据冗余度较小
- 可以交互方式或程序方式操作
- 问题:异地共享一处数据,容易造成网络通信 ”堵塞 ”
数据库管理系统(DBMS)
数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的数据管理软件。
数据库在建立、运用和维护时由数据库管理系统一管理、统一控制。它使用户方便地定义数据和操作数据,并能够保证的安全性、完整性、以及多用户对数据的并发使用及发生故障后的数据库恢复。
SQL
SQL(Structred Query Language):结构化查询语言。
SQL 语言是现在关系型数据库的标准查询语言。其主要组成部分:
- 数据定义语言(DDL,Data Definition Language)
- 数据操作语言(DML,Data Manipularion Language)
- 数据存储过程(System Stored Procedure)
- 一些附加的语言元素
分布式数据库系统
分布式数据库(Distributed Database Management System,简称DDBMS)技术是数据库技术和网络、通信的结晶产物。
其特点是:
- 处理数据分散在各个结点上,每个结点的数据由本地DBMS管理,各结点间可以数据共享
- 充分利用、发挥各个结点的资源优势,减轻网络负担