第3章_公共基础软件工程基础
- 格式:ppt
- 大小:1.01 MB
- 文档页数:53
公共基础知识软件工程基础汇报人:日期:•软件工程概述•软件开发生命周期•软件开发模型•软件需求工程•软件设计基础•软件工程管理基础•软件工程工具与技术目录软件工程概述软件的定义软件的特点软件的定义与特点软件工程的目标是实现软件的可靠性、可维护性、可扩展性和可重用性,同时满足用户的需求和期望。
软件工程的定义与目标软件工程的目标软件工程的定义提高软件质量降低软件开发成本增强软件的可维护性满足用户需求软件工程的重要性软件开发生命周期需求分析阶段01020304设计阶段编码与测试阶段进行单元测试、集成测试和系统测试。
部署与维护阶段01020304软件开发模型线性开发流程文档驱动适用于稳定环境030201瀑布模型迭代开发每个迭代周期都包含需求分析、设计、编码、测试等阶段,逐步完善软件的功能和性能。
逐步完善适用范围广迭代模型快速响应轻文档跨职能团队敏捷开发模型类和继承面向对象开发模型使用类和继承的概念,通过定义类来创建对象,并通过继承来共享属性和方法。
对象导向面向对象开发模型是一种以对象为导向的开发方法,将现实世界中的事物抽象成对象,并定义对象的属性和方法。
适用于复杂系统面向对象开发模型适用于复杂系统的开发,特别是涉及多个模块和组件的项目。
面向对象开发模型软件需求工程01020304访谈问卷调查焦点小组观察原型法螺旋模型敏捷方法面向对象方法确定系统目标划分系统功能定义数据结构制定接口标准需求规格说明书编制软件设计基础软件设计的概念软件设计的原则软件设计的基本原则和概念软件设计的任务软件设计的过程软件设计的主要任务和过程软件质量要素软件设计中的质量要素包括可靠性、可用性、可维护性、可扩展性等,以确保软件产品能够满足用户需求并稳定运行。
关键技术软件设计中的关键技术包括面向对象编程、设计模式、架构模式等,以提高软件产品的质量和开发效率。
软件设计中的质量要素和关键技术软件工程管理基础任务分解资源估算估算方法软件项目估算基础制定进度计划确定关键路径监控与调整软件项目进度计划制定风险识别识别项目中可能出现的风险,如需求变更、技术难题、人员流失等。
第1章数据结构与算法1、数据的不可分割的基本单位是数据项。
2、算法的复杂度是执行算法所需要的计算工作量,取决于问题的规模和待处理数据的初态。
3、数据结构作为一门学科,主要讨论以下三方面的内容:1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;2)在对数据元素进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;3)对各种数据结构进行的运算。
4、数据在计算机内存中的表示是指数据的存储结构。
5、在数据结构中,与所使用的计算机无关的数据结构是逻辑结构。
6、在数据结构中,从逻辑上可以把数据结构分成线性结构和非线性结构。
7、栈的特点:先进后出8、队列的特点:先进先出9、树,二叉树,满二叉树,完全二叉树10、二叉树的遍历(前序,中序,后序)11、对线性表进行折半查找,要求线性表必须以顺序方式存储,且结点按关键字有序排列。
12、查找技术1)顺序查找2)二分查找(即折半查找)13、排序技术3)交换类排序(冒泡排序,快速排序)4)选择类排序(简单选择排序,堆排序)5)插入类排序(简单插入排序,西尔排序)各种排序方法时间、空间复杂度对比15、线性结构中元素之间存在一对一关系,树型结构中元素之间存在一对多的关系。
16、在双向链表中,每个结点有两个指针域,一个指向前驱结点,一个指向后继结点。
第2章程序设计基础1、程序设计经历了结构化设计(面向过程)和面向对象的程序设计阶段2、良好的编程风格应注意的因素1)源程序的文档化◆符号名的命名规则:具有一定的实际意义,便于理解程序功能◆正确的程序注释:注释分为序言性注释和功能性注释。
序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。
功能性注释一般在源程序体之中,用于描述其后的语句或程序的主要功能。
◆视觉组织:在程序中利用空格、空行、缩进等技巧使程序层次清晰。
2)数据说明的方法◆数据说明的次序规范化◆说明语句中变量安排有序化◆使用注释来说明复杂数据的结构3)语句的结构为使程序简单易懂,应注意如下:◆一行写一条语句◆编写程序优先考虑清晰性◆程序编写要做到清晰第一,效率第二◆在保证程序正确的基础上再提高效率◆避免使用临时变量而使程序的可读性下降◆避免不必要的转移◆尽量使用库函数◆避免采用复杂的条件语句◆尽量使用“否定”条件语句◆数据结构要有利于程序的简化◆要模块化,使模块功能尽可能单一◆利用信息隐蔽,确保每一个模块的独立性◆从数据出发去构造程序◆不要修补不好的程序,要重新编写4)输入输出输入输出方式和风格应尽可能方便用户的使用,考虑如下原则:◆对输入数据要检验数据的合法性◆检查输入项的各种重要组合和合理性◆输入格式要简单,使得输入的步骤和操作尽可能简单◆输入数据时,应允许使用自由格式◆应允许缺省值◆输入一批数据时,最好使用输入结束标志◆在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息◆当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性3、结构化程序设计的原则1)自顶向下:先考虑总体后考虑细节,先考虑全局目标后考虑局部目标。
计算机二级考试选择题必背知识点公共基础第一章数据结构与算法§1.1 算法1.算法的定义:是指解题方案的准确而完整的描述。
(算法不等于程序,程序的设计不可能优于算法的设计)2.算法的基本特征:可行性、确定性、有穷性、足够的情报。
3.算法的基本要素:4.算法的时间和空间复杂度:算法的时间复杂度和算法的空间复杂度相互独立。
§1.2 数据结构的基本概念1.数据:需要处理的数据元素的集合,一般来说,这些数据元素,具有某个共同的特征。
(1)数据元素是数据的基本单位,即数据集合中的个体。
(2)有时一个数据元素可有若干数据项组成。
数据项是数据的最小单位。
2.结构:是集合中各个数据元素之间存在的某种关系(或联系)。
3.数据结构:是指相互有关联的数据元素的集合。
4.数据结构的分类:(1)逻辑结构:线性结构(线性表、栈、队列);非线性结构(树、图)。
(2)存储结构:顺序存储;链式存储。
(3)运算:插入、删除、查找、排序。
5.逻辑结构:反应数据元素间的逻辑关系(即前后件关系)的数据结构。
(1)线性结构(线性表):(举例:春→夏→秋→冬)a.有且只有一个根节点,它无前件;b.每一个节点最多有一个前件,也最多有一个后件。
(2)非线性结构:a.不满足以上两个条件的数据结构就称为非线性结构;b.非线性结构主要是指树形结构和网状结构。
6.存储结构:又称为数据的物理结构,是数据的逻辑结构在计算机存储空间中的存放方式(1)顺序存储结构:主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里。
(2)链式存储结构:每一个结点至少包含一个指针域,用指针的指向来体现数据元素之间在逻辑上的联系。
§1.3 线性表及其顺序存储结构1.线性表:线性表是n(n≥0)个数据元素构成的有限序列,表中除第一个元素外的每一个元素,有且只有一个前件,除最后一个元素外,有且只有一个后件。
举例:英文字母表、地理学中的四向、表格2.线性表的顺序存储结构:通常线性表可以采用顺序存储和链式存储,但一般使用顺序存储结构。
公共基础——软件工程基础软件工程基础知识1、构成计算机软件的是()。
A、源代码B、程序和数据C、程序和文档D、程序、数据及相关文档参考答案:D【解析】软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选D。
2、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()。
A、编译程序B、操作系统C、教务管理系统D、汇编程序参考答案:C【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。
3、. 软件生命周期中的活动不包括()。
A、市场调研B、需求分析C、软件测试D、软件维护参考答案:A【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。
主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护,所以选择A。
4、负责数据库中查询操作的数据库语言是()。
A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言参考答案:C【解析】数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
5、软件生命周期是指()。
A、软件产品从提出、实现、使用维护到停止使用退役的过程B、软件从需求分析、设计、实现到测试完成的过程C、软件的开发过程D、软件的运行维护过程参考答案:A【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
6、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A、外模式B、内模式C、概念模式D、逻辑模式参考答案:B【解析】数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
公共基础知识教学讲义◆考试方式公共基础知识有10道选择题和5道填空题共30分第1章数据结构与算法一、算法:1、算法:1)、定义:指解题方案的准确而完整的描述。
是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
2)、注意:算法!=程序!=计算方法3)、联系:程序可以作为算法的一种描述,但程序通常还需考虑很多与方法和分析无关的细节问题,即受到计算机系统运行环境的限制。
于是,程序的编制不可能优于算法的设计。
2、算法的基本特征:1)、可行性:针对实际问题设计的算法,能不能被执行。
2)、确定性:指算法中的每一个步聚都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。
3)、有穷性:指算法必须能在有限的时间内做完,即算法必须能执行有限个步聚之后终止。
4)、拥有足够的情报:为算法所提供的数据是否足够。
3、算法的基本要素:2种1)、对数据对象的运算和操作2)、算法的控制结构:顺序、选择、循环4、算法复杂度:1)、主要包括:A、时间复杂度:指执行算法所需要的计算工作量。
就是执行过程中所需要基本运算次数。
①与问题的规模有关。
时间复杂度=算法的工作量= f(n)注: n是问题的规模。
②与特定的输入有关。
B、空间复杂度:指执行这个算法所需要的内存空间。
①包含:算法程序所占的空间+ 输入的初始数据所占的存储空间+ 执行过程中所需要的额外空间(算法程序执行过程中的工作单元+ 某种数据结构所需要的附加存储空间)②应用:采用压缩存储技术。
二、数据结构:1、数据结构:是指相互有关联的数据元素的集合。
(带有结构的数据元素的集合)2、作为计算机的一门学科,主要研究和讨论:1)、数据集合中各数据元素之间所固有的逻辑关系。
(数据的逻辑结构)2)、在对数据进行处理时,各数据元素在计算机中存储关系。
(数据的存储结构)3)、对各种数据结构进行的运算。
3、讨论的主要目的:为了提高数据处理的效率。
全国计算机等级考试二级c语言公共基础知识总结第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
公共基础之软件工程基础(最全)word资料第三章软件工程基础1.下列叙述中,正确的是( D )。
A)软件就是程序清单B)软件就是存放在计算机中的文件C)软件应包括程序清单及运行结果D)软件包括程序和文档2.软件是程序、数据和文档的集合。
3.软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)4.软件工程的出现是由于(C )A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展5.软件工程研究的内容主要包括:软件开发技术和软件工程管理。
6.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(B)A)软件投机B)软件危机C)软件工程D)软件产生7.开发大型软件时,产生困难的根本原因是( A )。
A)大型系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧、任务重8.软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原理来设计软件,这就是软件工程诞生的基础。
9.下列不属于软件工程的3个要素的是(D )A)工具B)过程C)方法D)环境10.软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
11.软件生命周期中所花费用最多的阶段是(D )A)详细设计B)软件编码C)软件测试D)软件维护12.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D )A)概要设计B)详细设计C)可行性分析D)需求分析13.软件开发的结构化生命周期方法将软件生命周期划分成( A )。
A) 定义、开发、运行维护B)设计阶段、编程阶段、测试阶段C)总体设计、详细设计、编程调试D)需求分析、功能定义、系统设计14.软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。
15.软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。