软件技术基础(包含数据结构、软件工程、数据库基础知识和基本内容)
软件基本知识(请二级老先生一定要练习这里面的内容)

第一大题(三)软件基本知识1.计算机软件系统包括(B)和应用软件两大类。
A.操作系统B.系统软件C.文字处理软件D.语言处理软件2.下面( A)不是操作系统。
A.WINWORD B.MS-DOS C.WINDOWS XP D.UNIX3.运行效率最高的计算机语言是( A)。
A.机器语言B.高级语言C.汇编语言D.C语言4.下面( B )不是系统软件。
A.操作系统B.文字处理系统C.语言处理程序D.设备驱动程序5.下面( B)不是应用软件。
A.WINWORD B.UNIX C.PHOTOSHOP D.AUTOCAD6.用高级语言编写的程序叫( D)。
A.编译程序B.汇编程序C.解释程序D.源程序7.能把高级语言源程序变成目标程序的是( A )。
A.编译程序B.汇编程序C.解释程序D.编辑程序8.把高级语言源程序逐条翻译并执行的是( C)。
A.编译程序B.服务程序C.解释程序D.编辑程序9.能把汇编语言源程序变成目标程序的是( B)。
A.编译程序B.汇编程序C.解释程序D.编辑程序10.用机器语言编写的源程序,可以( D)。
A.在各种计算机上运行B.编译后才能执行C.解释后才能执行D.在特定计算机系统中直接执行11.主要用于网络编程的程序设计语言是( A)。
A.JA V A B.FORTRAN C.LISP D.C12.Office 2003 是( B)。
A.系统软件B.应用软件C.工具软件D.教育软件13.计算机辅助测试的英文缩写是( C)。
A.CAD B.CAM C.CAT D.CAPP14.计算机系统软件中,( A)是最基本的软件。
A.操作系统B.语言处理程序C.文字处理系统D.编译程序15.一条指令通常由( C)和操作数两个部分组成。
A.软件B.程序C.操作码D.机器码16.计算机软件包括( D)。
A.程序B.文档及数据C.算法及数据结构D.程序和与之有关的文档17.计算机应用软件一般是指( C )。
计算机软件技术基础知识点总结

《计算机软件技术基础》第一章算法1.1算法的基本概念算法:指解题方案的准确而完整的描述算法的基本特征:能行性(算法中的每一个步骤必须能够实现;算法执行的结果要能够达到预期的目的)确定性(算法中的每一个步骤都必须是有明确定义的,不能摸棱两可,也不能有多义性)有穷性(算法必须能在执行有限个步骤之后终止)拥有足够的情报(算法执行的结果总是与输入的初始数据有关。
不同输入对应不同输出)算法:是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的、明确的,此顺序将在有限的次数下终止。
算法的基本要素:1.算法中对数据的运算和操作(算术运算、逻辑运算、关系运算、数据传输【赋值、输入、输出】)2.算法的控制结构(算法中各操作之间的执行顺序)1.2算法描述语言C语言描述和简单的算法描述语言(1)符号与表达式:符号主要用以表述变量名、数组名等(2)赋值语句(3)控制转移语句:无条件转移语句形式:GOTO 标号条件转移语句形式IF C THEN SIF C THEN S1ELSE S2(4)循环语句WHILE语句:WHILE C DO SFOR语句:FOR i=init TO limit BY step DO S(5)其他语句EXIT语句:退出某个循环,使控制转到包含EXIT语句的最内层的WHILE或FOR循环后面的一个语句去执行RETURN语句:结束算法的执行(允许使用用引号括起来的注释信息)READ(INPUT)和WRITE(PRINT/OUTPUT)语句:用于输入输出(6)算法中的注释总是用一对方括号【】括起来;复合语句用一对花括号{}括起来1.3算法设计基本方法1.列举法【例1.1】基本思想:根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的(通常解决“是否存在”“有多少种可能”类型问题)特点:算法比较简单,但列举情况较多时,工作量将很大寻找路径、查找、搜索等问题采用列举法有效2.归纳法基本思想:通过列举少量的特殊情况,经过分析,最后找出一般的关系3.递推法(数学例题)指从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果(本质属于归纳法)4.递归基本思想:将问题逐层分解的过程,实际上并没有对问题进行求解,而只是当解决了最后那些简单的问题后,再沿着原来分解的逆过程逐步进行综合【例1.3】自己调用自己的过程称为递归调用过程递归分为直接递归:一个算法P显式地调用自己间接递归:算法P调用另一个算法Q,而算法Q又调用算法P5.减半递推技术(分治法)减半:将问题的规模减半,而问题的性质不变递推:重复“减半”的过程【例1.4】6.回溯法通过对问题的分析,找出一个解决问题的线索;然后沿着这个线索逐步试探。
软件技术知识基础-数据结构

栈
总结词
栈是一种后进先出(LIFO)的数据结构。
VS
详细描述
栈只允许在末尾进行插入和删除操作,通 常用于实现函数调用、括号匹配等功能。 栈的优点是插入和删除速度快,缺点是空 间利用率较低。
队列
总结词
队列是一种先进先出(FIFO)的数据结构。
详细描述
队列允许在一端进行插入操作,在另一端进 行删除操作,通常用于实现任务调度、缓冲 区处理等功能。队列的优点是空间利用率高, 缺点是插入和删除速度较慢。
软件技术知识基础-数 据结构
目 录
• 数据结构概述 • 线性数据结构 • 非线性数据结构 • 排序与查找 • 数据结构的应用
01
数据结构概述
数据结构的定义
数据结构:数据结构是计算机中组织数据的方式,它定义了数据元素之间的逻辑关系。数据结构是计算机存储、组织数据的 方式,它涉及到数据的逻辑结构、物理结构以及数据元素之间的关系。
感谢您的观看
04
排序与查找
排序算法
冒泡排序
通过重复地遍历待排序序列,比较相邻元素的大 小,交换位置,使得较大的元素逐渐往后移动, 最终达到排序的目的。
插入排序
将待排序元素插入到已排序序列中的适当位置, 使得插入后仍然保持有序,直到所有元素均插入 完毕。
选择排序
每次从未排序的元素中选取最小(或最大)的一 个元素,将其放在已排序序列的末尾,直到所有 元素均排序完毕。
快速排序
采用分治策略,通过一趟排序将待排序序列分割 成独立的两部分,其中一部分的所有元素均比另 一部分的元素要小,然后再按此方法对这两部分 继续进行排序,以达到整个序列有序。
查找算法
线性查找
二分查找
哈希查找
计算机二级【公共基础知识】软件工程基础

3.软件的分类
根据应用目标的不同,软件可分应用软件、系 统软件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定目 的服务的一类软件。
(2)系统软件。它能与计算机硬件紧密配合在一起, 使计算机系统各个部分、相关的软件和数据协调、 高效的工作的软件。例如:操作系统、数据库管理 系统。
3.4软件测试
软件测试的指用人工或自动手段来运行或测定
某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间
的差别。简单地说,软件测试的目的是尽可能 多地发现程序中的错误。
考点2:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
1. 详细设计为软件结构图中的每一个模块确定
实现算法和局部数据结构,用某种选定的表 达工具表示算法和数据结构的细节。
详细设计常用工具:
1. 图形工具(程序流程图、 PAD图 、N-S图、 HIPO图)
2. 表格工具(判定表)
3. 语言工具(PDL )
开始 输入R S=3.14 * R*R
输出S
结束
答案:D
例题:
软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
答案:C
例题:
软件设计中,有利于提高模块独立性的一个准 则是
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
答案:C
例题:
下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图
软考计算机基础知识

软考(计算机技术与软件专业技术资格(水平)考试)涉及广泛的计算机基础知识,以下是一些主要的考点:
1. 计算机系统基础知识:包括计算机硬件系统的组成和功能,如CPU、内存、硬盘、输入输出设备等;计算机软件系统的组成和功能,如操作系统、数据库管理系统、网络软件等。
2. 数据结构与算法:包括线性表、树、图等基本数据结构,以及排序、查找等常见算法。
3. 操作系统知识:包括操作系统的基本概念、功能、分类以及常见操作系统的特点和使用方法。
4. 数据库知识:包括数据库的基本概念、数据模型、数据库设计和管理等方面的知识。
5. 网络知识:包括计算机网络的基本概念、分类、拓扑结构以及网络协议等。
6. 软件工程知识:包括软件生命周期、软件开发模型、软件测试方法以及软件质量管理等方面的知识。
7. 信息安全知识:包括信息安全的基本概念、加密技术、防火墙技术、入侵检测技术等。
8. 多媒体技术知识:包括音频、视频、图像处理等多媒体技术的基本概念和应用。
此外,软考还涉及一些与计算机相关的法律法规和标准化知识,如知识产权、计算机软件保护条例、标准化基础知识等。
在备考软考时,建议考生根据考试大纲的要求,系统学习相关知识点,并结合实际案例进行练习,以提高自己的应试能力。
同时,也可以参加一些培训课程或模拟考试,以检验自己的学习成果和应试水平。
请注意,以上只是软考涉及的一些主要计算机基础知识考点,具体考试内容和要求可能会因考试科目和级别的不同而有所差异。
因此,在备考时,建议考生仔细阅读相关科目的考试大纲和要求,以确保自己能够全面、准确地掌握所需的知识点和技能。
软件技术基础知识点

软件技术基础知识点在当今数字化的时代,软件技术已经成为推动社会发展和创新的关键力量。
无论是我们日常使用的手机应用,还是企业运行的复杂系统,都离不开软件技术的支持。
接下来,让我们一起探索软件技术的一些基础知识点。
一、数据结构数据结构是软件技术中非常重要的概念。
它是指相互之间存在一种或多种特定关系的数据元素的集合。
常见的数据结构包括数组、链表、栈、队列、树和图等。
数组是一种最简单的数据结构,它是一组相同类型的元素按顺序存储在连续的内存空间中。
数组的优点是访问元素的速度快,但插入和删除元素的效率较低。
链表则是通过指针将各个元素链接在一起,不需要连续的内存空间。
链表在插入和删除元素时较为方便,但访问元素的速度相对较慢。
栈是一种特殊的线性表,遵循“后进先出”的原则。
就像往一个桶里放东西,最后放进去的会最先被取出。
队列则遵循“先进先出”的原则,类似于排队买票,先到的先买。
树是一种分层的数据结构,常见的有二叉树、二叉搜索树等。
二叉搜索树可以快速地进行查找、插入和删除操作。
图则用于表示多对多的关系,在网络路由、社交网络分析等领域有广泛的应用。
二、算法算法是解决特定问题的一系列明确步骤。
好的算法应该具有正确性、可读性、健壮性、高效性和低存储量需求等特点。
常见的算法有排序算法,如冒泡排序、插入排序、选择排序、快速排序等。
冒泡排序通过不断比较相邻的元素并交换位置,将最大的元素逐步“浮”到数组的末尾。
快速排序则通过选择一个基准元素,将数组分为小于和大于基准元素的两部分,然后对这两部分分别进行排序。
搜索算法也是重要的算法之一,包括顺序搜索和二分搜索。
顺序搜索逐个检查元素,直到找到目标元素或遍历完整个数组。
二分搜索则是在有序数组中,通过不断将数组对半分割来查找目标元素,效率较高。
还有动态规划算法,用于解决具有重叠子问题和最优子结构性质的问题,如背包问题、最长公共子序列问题等。
三、编程语言编程语言是软件开发者与计算机进行交流的工具。
《软件技术基础》一体化教学的立体教材研究与实践

(
’U <M 应用 程 序的 建 立、 编译和运行。
J! 《软件技术基础》 主教材的结构体系
本套教材适用于非计算机专业的工科、 指挥类、 管理 类 大学本、 专科 学生, 以及对 <M 程序设 计语言感兴 趣的初 学 者。学完教材, 能够使 用 <M 编写 简单程序, 达到 全国计 算 机等级考试二级水平。
$
%
’U <M 的基 本 数据 类 型、 运算符合表达式; (U 常用内部函数。
J U :! 教学内容的选取
主教材共 ’) 章, 每章、 节标题与学习重点、 建议学时 如
%
(00)&0) &’0; 修订日期: (00)&0* &’) " 收稿日期: 作者简介: 阎京梅 ( ’W1’ ) , 女, 北京人, 讲师, 硕士, 研究 向为面向对象系统分析与设计。 通讯地址: %00’:’ 天津市东局子军事交通学院计算机教研室; ,I> : ( 0(() *$:)1::*; 6&ODH >: CDEXHEKOIHY L=JA U G=O #II?+DD: /IG@H =E =Q "=OPA@IF /GHIEGI , 4H>H@ DFC ,FDQQHG .EL@H@A@I , ,HDEX HE %00’:’ , -U 7 U "JHED
! "#$% &’() * + ,! .// # ’ 001 &’%0 2
! ! ! ! 计算机工程与科学
" 34-5,67 6 #8.#66 7.#8 9 /".6 #"6
( 00: 年第 (* 卷第 ;’ 期! ! <=>? (* , #=? ;’ , (00:!
软件技术基础周大为答案

软件技术基础周大为答案【篇一:计算机软件技术基础课程大纲2016】ss=txt>课程名称:计算机软件技术基础/foundation of computer software technique 课程编号:学分: 2学分总学时:32学时(含实验2学时)适用专业:自动化专业先修课程:计算机程序设计基础(c语言)团队负责人:(填课程组长姓名)执笔:日期:审阅:日期:审定:日期:一、课程简介与特色课程简介本课程系自动化专业有关计算机科学的选修专业课程,该课程结合了算法与数据结构、软件工程、操作系统、数据库等基本理论和技术,其中算法与数据结构内容包括算法,表结构、树结构、图结构及查找与排序技术 ,其实践环节对于学生掌握软件开发的过程具有非常重要的意义,课程教学需要注重教学内容、教材选取、教学方法、教学模式、考核方法等各方面,以期获得较好的教学效果。
the course is a elective courses concerning computer science and technology of automation. this course contains algorithm and data structure, operating system, software engineering, database and other basic theory and technology. algorithmand data structure contains algorithm, list data structure, tree data structure , graph data structure, searching and sorting techniques. the practice part of this course is very importantfor students to master the process of software development. it need to discuss for a better teaching effect from teaching content, teaching material selection ,teaching method,teaching mode, evaluation method etc.课程特色本课程是理论与实践并重的课程,要求学生既要掌握基础理论知识,又要掌握调试程序的基本技能,在实践中培养独立分析问题和解决问题的能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k 代表每个元素占的字节数。
顺序表的运算:插入、删除。
(详见14--16页)1.4 栈和队列栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
用top表示栈顶位置,用bottom表示栈底。
栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
Rear指针指向队尾,front指针指向队头。
队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。
队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。
循环队列:s=0表示队列空,s=1且front=rear表示队列满1.5 线性链表数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:查找、插入、删除。
1.6 树与二叉树树是一种简单的非线性结构,所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。
每一个结点可以有多个后件,称为该结点的子结点。
没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。
树的最大层次称为树的深度。
二叉树的特点:(1)非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
二叉树的基本性质:(1)在二叉树的第k层上,最多有2k-1(k≥1)个结点;(2)深度为m的二叉树最多有2m-1个结点;(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;(4)具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n 的整数部分;(5)具有n个结点的完全二叉树的深度为[log2n]+1;(6)设完全二叉树共有n个结点。
如果从根结点开始,按层序(每一层从左到右)用自然数1,2,….n给结点进行编号(k=1,2….n),有以下结论:①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点深度为m的满二叉树有2m-1个结点。
完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。
二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。
二叉树的遍历:(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;(3)后序遍历(LRD)首先遍历左子树,然后访问遍历右子树,最后访问根结点。
1.7 查找技术顺序查找的使用情况:(1)线性表为无序表;(2)表采用链式存储结构。
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
1.8 排序技术排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
交换类排序法:(1)冒泡排序法,需要比较的次数为n(n-1)/2;(2)快速排序法。
插入类排序法:(1)简单插入排序法,最坏情况需要n(n-1)/2次比较;(2)希尔排序法,最坏情况需要O(n1.5)次比较。
选择类排序法:(1)简单选择排序法,最坏情况需要n(n-1)/2次比较;(2)堆排序法,最坏情况需要O(nlog2n)次比较.4.2软件工程基础3.1 软件工程基本概念计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:(1)软件是一种逻辑实体;(2)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。
软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
软件危机主要表现在成本、质量、生产率等问题。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程包括3个要素:方法、工具和过程。
软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:(1)P——软件规格说明;(2)D——软件开发;(3)C——软件确认;(4)A——软件演进。
软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:(1)可行性研究与计划制定;(2)需求分析;(3)软件设计;(4)软件实现;(5)软件测试;(6)运行和维护。
软件工程的目标和与原则:目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件易于移植;需要较低的费用;能按时完成开发,及时交付使用。
基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
软件管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等。
软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.2 结构化分析方法结构化方法的核心和基础是结构化程序设计理论。
需求分析方法有(1)结构化需求分析方法;(2)面向对象的分析的方法。
从需求分析建立的模型的特性来分:静态分析和动态分析。
结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的常用工具(1)数据流图;(2)数据字典;(3)判定树;(4)判定表。
数据流图:描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能建模。
数据字典:对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。
判定树:从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。
判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。
数据字典是结构化分析的核心。
软件需求规格说明书的特点:(1)正确性;(2)无岐义性;(3)完整性;(4)可验证性;(5)一致性;(6)可理解性;(7)可追踪性3.3 结构化设计方法软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。