1.计算机软件是由程序,数据及其相关文档构成的完整集合,它与计算机硬件一起组成计算机系统。其中,程序和数据是机器可执行的,文档是机器不可执行的。
2.软件的特点:
是一种逻辑实体,具有抽象性;
没有明显的制作过程;
在使用期间不存在磨损、老化问题;
对硬件和环境具有依赖性;
软件复杂性高,成本昂贵;
软件开发涉及诸多的社会因素。
3.软件的分类
|类别| 作用 | 举例 |
|系统软件| 管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件 | 例如操作系统(OS),数据库管理系统(DBMS),编译程序,汇编程序和网络软件等 |
|应用软件| 为了应用于特定的领域而开发的软件 | 例如Word,QQ,360杀毒程序,财务管理系统等 |
| 支撑软件(工具软件) | 介于系统软件和应用软件之间,协助用户开发软件的工具性软件,其中包括帮助程序人员开发和维护软件的工具软件,也包括帮助管理人员控制开发进程和项目管理的工具软件 | 例如cmd等 |
软件工程
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、时间标准和工序。
软件工程包含3个要素:方法,工具和过程
软件设计是确定系统的物理模型
模块独立程度的定性标准度量:内聚性和耦合性
软件工程的原则:
抽象;信息隐蔽;模块化;局部化;确定性;一致性;完备性;可验证性。
软件需求规格说明书的特点:
正确性;无歧义性;完整性;可验证性;一致性;可理解性;可修改性;可追踪性。
结构化分析方法的常用工具
结构化分析是使用数据流图,数据字典,结构化英语,判定表和判定树等工具,来建立一种新的,称为结构化规格说明的目标文档。
需求分析的结构化分析方法中的常用工具是数据流图(PDF)。
好的软件设计应尽量做到 高内聚、低耦合;
好的软件设计结构通常顶层高扇出,中间扇出较少,底层高扇入
详细设计常用的设计工具有程序流程图(PDF),N-S图,PAD图,HIPO图,判定表,PDL。
软件测试
软件测试是在软件投入运行之前,尽可能多的发现软件中的错误。软件测试的目的是发现软件中的错误。
软件测试应遵循的准则:
所有测试都应追溯到用户需求;
在测试之前制定测试计划,并严格执行;
充分注意调试中的群集现象;
避免由程序的编写者测试自己的程序;
不可能进行穷举测试;
妥善保护测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
软件测试方法
白盒测试
主要根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作。
白盒测试的主要技术有 逻辑覆盖测试,基本路径测试等。其中逻辑覆盖测试又分为语句覆盖、路径覆盖、判定覆盖、条件覆盖和判断-条件覆盖。
黑盒测试
主要根据规格说明书的功能来设计测试用例,检查程序的功能是否符合规格说明的要求。
常用的黑盒测试方法和技术有:等价类划分法,边界值分析法,错误推断法和因果图等。
软件测试的四个步骤:单元测试、集成测试、确认测试和系统测试。
程序调试
程序调试(也称为Debug,排错)是作为成功测试的后果而出现的步骤,是在测试发现错误之后排除错误的过程。程序调试的任务是诊断和改正程序中的错误。
主要的调试方法有:强行排错法、回溯法、原因排除法(二分法、归纳法和演绎法)
数据库设计基础
数据库管理系统(DBMS)是数据库系统的核心它位于用户与操作系统之间,从软件分类来看,属于系统软件。
数据库管理系统的主要功能:数据模式定义、数据存取的物理构建、数据操纵、数据完整性、安全性的定义与检查、数据库的并发控制与故障恢复,数据的服务。
数据管理技术的发展经历3个阶段:人工管理阶段、文件系统阶段、数据库系统阶段。
数据库系统的基本特点:
数据的继承性;数据的高共享性与第冗余性;数据独立性;数据统一管理与控制。
数据库系统的内部结构体系
数据库系统的三级模式结构
**概念模式:也称为模式**,是数据库系统中全局数据逻辑结构的描述,全体用户的公共数据视图。
**外模式,也称为子模式或者用户模式**是用户的视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某应用有关的数据的逻辑表示。**外模式通常是概念模式的子集。**
**内模式:又称为物理模式**,是数据物理结构的和存储方式的描述,是数据在数据库内部的表示方式。
一个数据库只有一个概念模式和一个内模式,有多个外模式。
数据模型是对数据特征的抽象。通常来说,数据模型就是对现实世界的模拟、描述或表示,建立数据模型的目的是建立数据库来处理数据。
常见的概念模型:E-R模型,它包含3个基本概念:实体,联系和属性。
关系模型常用的术语
|关系|一个二维表就是一个关系 |
|属性|二维表中的一列称为属性;二维表中属性的个数称为属性元数。|
|元组|二维表中一行称为元组 |
关系模型的完整性约束:实体完整性约束,参照完整性约束和用户定义的完整性约束。前两种完整性约束是任何一个数据库都必须满足的,由关系数据库管理系统自动支持。