二级公共基础知识student软件工程数据库设计课件.ppt
全国计算机等级考试,二级公共基础知识,中华女子学院 计算机系,主要参考资料,全国计算机等级考试二级教程公共基础知识(2011年版),教育部考试中心,高等教育出版社。,三、软件工程基础,考试大纲1.软件工程基本概念,软件生命周期的概念,软件工具与软件开发环境。2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。3.结构化设计方法,总体设计与详细设计。4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5.程序的调试,静态调试与动态调试。,知识点归纳,计算机软件定义 软件是包括程序、数据及相关文档的完整集合。由两部分组成:机器可执行的程序和数据,与软件开发、运行、维护、使用等有关的文档。计算机软件的特点 软件是一种逻辑实体,具有抽象性 软件生产没有明显的制造过程 软件在运行、使用期间不存在磨损、老化问题 软件的开发、运行对计算机系统具有依赖性-软件移植问题 软件复杂性高,成本昂贵-软件开发涉及多个领域的专门知识 软件开发涉及诸多社会因素-用户机构设置、知识产权等,知识点归纳,计算机软件按功能分类 应用软件、系统软件、支撑软件(或工具软件)应用软件 系统软件:操作系统、数据库管理系统 编译程序、汇编程序、网络软件等 支撑软件:介于系统软件和应用软件之间,协助用户开发应用软件的工具性软件 需求分析工具软件、设计工具软件、编码工具软件、测试工具软件、维护工具软件、计划进度管理工具软件、项目管理工具软件、质量管理工具软件等,知识点归纳,软件工程 软件工程概念的出现源自于软件危机(在计算机软件开发和维护过程中所遇到的一系列严重问题)。软件开发成本和进度无法控制、软件成本不断提高 软件质量难以保证 软件开发生产率赶不上硬件的发展和应用需求的增长 软件工程是应用于计算机软件定义、开发和维护的一整套方法、工具、文档、实践标准和工序。将工程化原则应用于软件开发的全过程 核心思想:把软件产品看作工程产品来处理,引入需求计划、可行性研究、工程审核、质量监督等工程化的概念,以达到工程项目的3个基本要素:进度、经费和质量的目标,知识点归纳,软件工程三要素 方法、工具、过程 方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。软件工程的过程将软件工程的方法和工具综合起来,知识点归纳,软件工程过程 把输入转化为输出的一组彼此相关的资源和活动.有两方面含义:1.是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列工程活动。通常包括四种基本活动:P(Plan):软件规格说明;D(Do):软件开发 C(Check):软件确认 A(Action):软件演进 2.从软件开发的观点看,是指使用适当的资源,为开发软件 进行的一组开发活动,在活动结束时将输入(用户需求)转化 为输出(软件产品)。,知识点归纳,软件生命周期 软件从提出、实现、使用、维护到停止使用的过程称为软件的生命周期。分为定义、开发、维护三个阶段,包括可行性研究与计划制定、需求分析、软件设计、编码、测试、运行维护6个活动。,确定软件的开发目标和总体要求,编写软件规格说明书,编写程序代码,检验软件的各个组成部分,知识点归纳,软件工程目标与原则 目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的软件产品。原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性 软件工程研究的主要内容 软件开发技术:核心是软件开发方法学 软件工程管理,知识点归纳,软件开发工具与软件开发环境 软件工具(CASE,计算机辅助软件工程):用来辅助软件开、运行、维护、管理、支持等过程中的活动的软件。软件开发环境:支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。,知识点归纳,软件开发方法 软件开发过程所遵循的方法和步骤。包括分析方法、设计方法和程序设计方法。需求分析的工作 需求获取、需求分析 编写需求规格说明书、需求评审 需求分析方法 结构化分析方法(SA):面向数据流的分析方法、面向数据结构的Jackson方法等。面向对象的分析方法,知识点归纳,结构化分析方法 基于功能分解的分析方法。着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。分析工具 数据流图(DFD):描述数据流从输入到输出的变换过程。数据字典(DD):描述DFD中的每个数据流、数据存储以及组成数据流或数据存储的数据项。判定树:以图形方式描述数据流图的加工逻辑。判定表:,知识点归纳,数据流图 基本元素:外部实体、数据流、处理(加工)、数据存储,知识点归纳,建立数据流图的步骤 由外向里,先输入输出,再内部 自顶向下 逐层分解,知识点归纳,数据字典,数据元素的描述,数据结构的描述,数据存储的描述,数据流的描述,知识点归纳,知识点归纳,软件需求规格说明书(SRS)需求分析应交付的主要文档。主要内容 数据描述(数据流图、数据字典、接口说明等)功能描述(功能、处理说明等)性能描述(性能参数、预期的软件响应等)编写原则 精确、无二义性(无歧义性),知识点归纳,软件设计基本原则 抽象:把事物本质的共同特性提取出来 模块化:把软件分解成若干小的简单的部分 信息隐蔽:模块a包含的信息对模块b不可访问 模块独立性:(模块内部)内聚性、(模块之间)耦合性 高内聚、低耦合有利于提高模块的独立性。,知识点归纳,软件设计 从技术观点看,软件设计包括结构设计、数据设计、接口设计、过程设计;从工程管理角度看,软件设计分两步完成:概要设计和详细设计。,知识点归纳,概要设计(总体设计或结构设计)将软件需求转化为数据结构和软件系统结构。常用的软件结构设计工具是结构图。详细设计(过程设计)为软件结构图中的每个模块确定实现算法和局部数据结构,并用某种表达工具表示算法和数据结构的细节。过程设计常用的工具:图形工具:程序流程图、N-S、PAD、HIPO 表格工具:判定表 语言工具:过程设计语言PDL(伪码),知识点归纳,知识点归纳,PDL示例,知识点归纳,面向数据流的设计方法 通过某种映射方法,将数据流图变换成结构图表示的软件结构。数据流类型:变换型、事务型,知识点归纳,结构化程序设计方法的主要原则 自顶向下:从最上层总目标开始设计,逐步使问题具体化;逐步求精:对于复杂问题,设计一些子目标作为过渡,逐步细化;模块化:将要解决的总目标分解为分目标,再进一步分解为小目标,每个小目标作为一个模块;限制使用GOTO语句。,知识点归纳,软件测试 使用人工或自动手段来运行或测定某个系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指可能找到迄今为止尚未发现的错误的用例。一个成功的测试是发现了至今尚未发现的错误的测试。,知识点归纳,测试技术与方法 从是否需要执行被测试软件的角度,分为静态测试和动态测试。静态测试主要包括代码检查、静态结构分析、代码质量度量等。动态测试是基于计算机的测试,是为了发现错误而执行程序的过程,或者说是根据软件开发的各个阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。测试用例是为测试设计的数据,由测试输入数据和与之对应的预期输出结果两部分组成。测试用例的格式:(输入值集),(输出值集),知识点归纳,测试技术与方法 按照功能,分为黑盒测试和白盒测试。黑盒测试:功能测试。将测试对象看作一个黑盒,不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明,检查程序的功能是否符合它的功能说明。主要方法:等价类划分法、边界值分析法、错误推测法、因果图等。白盒测试:结构测试。把测试对象看作一个透明的盒子,利用程序内部的逻辑结构及有关信息,对程序的所有逻辑路径进行测试。主要方法有:逻辑覆盖、基本路径测试等。,知识点归纳,软件测试的实施(分四个步骤)单元测试:模块测试,发现模块内部的错误,以 白盒动态测试为主,依据是详细设计说明书。集成测试:组装测试,发现与接口有关的错误,依据是概要设计说明书。确认测试:验证软件的功能和性能以及其他特性是否满足需求规格说明中确定的各种需求,软件配置是否完全、正确。运用黑盒测试法。系统测试:将软件与计算机硬件、外设、支持软件、数据以及人员等其他系统元素组合在一起,在实际运行环境中对其进行一系列的集成测试和确认测试。发现软件与系统需求不一致的地方。,知识点归纳,程序调试(Debug)诊断和修正程序中的错误。(软件测试是尽可能多地发现软件中的错误)调试方法 强行排错法 回溯法 原因排除法 静态调试 通过人的思维来分析源程序代码和排错 动态调试,知识点归纳,软件维护 为纠正使用中出现的错误而进行的改正性维护 为适应环境变化而进行的适应性维护 为改进原有软件而进行的完善性维护 为将来的可维护和可靠而进行的预防性维护 软件维护不仅包括代码的维护还包括文档的维护,习题,习题,6.软件外部功能 7.黑盒 8.开发 9.数据字典,习题,1.下列正确的是:A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成 C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试2.下列描述中正确的是:A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题3.在软件设计中,不属于过程设计工具的是:A)PDL(过程设计语言)B)PAD图 C)N-S图D)DFD图4.下列叙述正确的是:A)软件交付使用后还需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令5.下列选项中不属于结构化程序设计方法的是 A)自顶向下 B)逐步求精 C)模块化D)可复用,习题,6.两个或两个以上模块之间关联的紧密程度称为 A)耦合度 B)内聚度 C)复杂度D)数据传输特性7.下列叙述中正确的是 A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对 8.下列选项不符合良好程序设计风格的是 A)源程序要文档化B)数据说明的次序要规范化 C)避免滥用goto 语句 D)模块设主地要保证高耦合、高内聚 9.从工程管理角度,软件设计一般分为两步完成,它们是 A)概要设计与详细设计B)数据设计与接口设计 C)软件结构设计与数据设计D)过程设计与数据设计10.下列选项中不属于软件生命周期开发阶段任务的是 A)软件测试 B)概要设计 C)软件维护 D)详细设计,四、数据库设计基础,考试大纲1.数据库的基本概念:数据库,数据库管理系统,数据库系统。2.数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。,知识点归纳,数据库(DB)长期存放在计算机内,有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性。,知识点归纳,数据库管理系统(DBMS)数据库系统的核心组成部分,在操作系统支持下工作。主要功能 数据模式定义 数据存取的物理构建 数据操纵 数据的完整性、安全性定义和检查 数据库的并发控制和故障恢复 数据的服务 DBMS 提供的语言 数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL),数据库系统,数据库系统 由数据库、数据库管理系统、数据库管理员、硬件平台和软件平台等组成。数据库系统的特点 数据的集成性 数据的高共享性和低冗余性 数据的独立性逻辑独立性:数据库逻辑结构的改变不影响应用程序。物理独立性:数据的物理结构(包括存储结构、存取方式)的改变不影响数据库的逻辑结构,从而不影响应用程序。数据统一管理和控制,知识点归纳,数据库系统的内部体系结构 三级模式 概念模式:全局数据逻辑结构的描述,全体用户的数据视图。外模式(用户模式):每个用户的局部数据描述,用户的数据视图。内模式(物理模式):数据库物理存储结构和物理存取方法的描述。二级映射 概念模式到内模式的映射 外模式到概念模式的映射 二级映射保证了数据库系统中数据的独立性。,是对数据的3个抽象级别,知识点归纳,数据模型 现实世界数据特征的抽象。数据模型描述的内容 数据结构、数据操作、数据约束 数据模型按不同应用层次划分 概念(数据)模型:面向客观世界的模型,与具体的计算机平台和DBMS无关。E-R模型(逻辑)数据模型:面向数据库系统的模型。层次模型、网状模型、关系模型、面向对象模型。物理(数据)模型:面向计算机物理表示的模型。,知识点归纳,实体联系(E-R)模型 实体 属性 联系:1:1、1:n、m:n E-R模型的图示法,知识点归纳,关系模型 数据的逻辑结构是一张二维表。基本的关系术语 关系、元组、属性、域、关系模式 主键:表中的某个属性或属性组,它可以唯一确定一个元组。外键 空值(null):不知道或无意义的值。,知识点归纳,关系的基本性质(主要特点),知识点归纳,关系操纵(关系运算)查询:并、交、差、广义笛卡尔积(,-,)选择、投影、连接(等值连接,自然连接)更新:插入、删除、修改 特点:集合操作方式,操作对象和结果都是集合。关系中的数据约束(关系的完整性)实体完整性约束 参照完整性约束 用户自定义完整性约束,知识点归纳,数据库设计 基本任务:根据用户的信息需 求,处理需求和数据的支持环境(包 括硬件、OS、DBMS)设计数据模式。设计阶段 需求分析:信息要求、处理要求、安全性和完整性要求 概念设计(E-R):集中式模式设计法、视图集成设计法 逻辑设计:将E-R模型转换为RDBMS中的关系模式(E-R图中的实体和联系都表示成关系,E-R图中的属性转换成关系的属性),并利用规范化理论对逻辑数据模型进行优化。物理设计:对数据内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。,知识点归纳,数据库管理 数据库的建立 数据库的调整 数据库的重组 数据库安全性控制与完整性控制 数据库的故障恢复 数据库监控,习题,习题,习题,