1、 软件:是计算机程序及其说明程序的各种文档。
2、 软件危机:是计算机软件的开发和维护过程所遇到的一系列严重的问题。
3、软件危机的几种典型表现:
(1) 对软件开发成本和进度的估计常常很不明确;
(2) 用户对“已完成的”软件系统部满意的现象经常发生; (3) 软件产品的质量往往靠不住; (4) 软件常常是不可维护的;
(5) 软件通常是没有适当的文档资料;
(6) 软件成本在计算机系统总成本中所占的比列逐年上升;
(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:
(1) 软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件;
(2) 软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随程序规模的增加呈指数
上升;
为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
3、 软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。(它是一门综合性的交叉学科,它涉
及计算机科学、工程科学、管理科学、数学等。) 4、 软件工程方法学包括三个要素:方法、工具和过程。
5、 软件工程过程:规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。其目的:是为各
种人员提供一个公共的框架,以便用相同的语言进行交流。包括七个过程:获取过程、供应过程、开发过程、操作过程、维护过程、管理过程、支持过程。
6、 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括:(软件定义、软件开发
和运行维护)可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护(是软件生存周期中最长的阶段)等。
7、 软件定义时期通常划分成三个阶段:问题定义、可行性研究和需求分析。
8、 开发时期通常由四个阶段组成:总体设计、详细设计、编码和单元测试、综合测试。 9、 通常对维护时期不再进一步划分阶段。
10、 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出
一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。) 主要有:瀑布模型(整体开发模型)、
增量模型(非整体开发模型)、
螺旋模型(是瀑布和增量相结合的模型;一种风险驱动的模型)、 喷泉模型(是以用户需求为动力,以对象作为驱动的模型)、
基于知识的模型(又称智能模型,是把瀑布模型和专家系统结合在一起的模型)、 变换模型(合适于形式化开发的模型)等。
11、 软件开发方法:用早就定义好的技术集合及符号表示习惯来组织软件生产的过程。主要:结构化方法(面向
数据流的开发方法,指导思想:自顶向下、逐步求精。基本原则:功能的分解与抽象)、Jackson方法(面向数据结构的开发方法)、维也纳开发方法(VDM)(是一种形式化的开发方法)、面向对象的开发方法(它有:Booh方法、Coad方法、和OMT等UML语言是面向对象的标准建模语言)。 12、 软件开发的目标:是在规定的投资和时间内,开发出符合用户需求的高质量的软件。 13、 软件工具:一般是指为了支持软件人员开发和维护活动而使用的软件。
14、 软件可行性研究的目的:就是用最小的代价在尽可能乱短的时间内确定该软件项目是否能够开发,是否值得
去开发。可行性研究实质上是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
15、 三方面研究可行性:技术可行性、经济可行性、社会可行性。
16、 系统流程图:是描绘物理系统的传统工具。它用图形符号来表示系统中的各个元素。
17、 成本—效益分析:首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。 18、 投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。投资回收期越短,就越快获得利润,
则该项目就越值得开发。
19、 纯收入:就是在整个生存周期之内的累计经济效益与投资之差。
20、 需求分析:是准确的理解用户的需求将其转换成需求定义,然后由需求定义转换成形式化的功能规约。 21、 结构化分析SA:是面向数据流进行需求分析的方法。
22、 结构化分析方法:是采用自顶向下逐层分解的分析策略把一个复杂的系统分解成若干小问题然后分别解决。 23、 数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数
据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
24、 数据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的、无二义性的说明方
式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。四类条目:数据流、数据项、数据存储、数据加工。
25、 结构化语言:是介于自然语言(英语或汉语)和形式语言之间的一种半开式语言。结构可分为:外层和内层。 26、 IDEF方法:是美国空军在1981年针对集成化计算机辅助制造(Integrated Computer Aided Manufacturing, 简称
ICAM)工程项目中用于进行复杂系统分析和设计的方法,是在结构化分析与设计技术的基础上提出来的。分为三部份: IDEF0:用来描述系统的功能活动及其联系,建立系统的功能模型。 IDEF1:用来描述系统的信息及其联系,建立系统的信息模型。 IDEF2:用来进行系统模拟,建立系统的动态模型。
27、 IEDF0的图形连在方框上的箭头有四种类型:输入、输出、控制和机制。一个活动可无输入,但必须至少有
一个控制。
28、 概要设计:是在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现。 29、 模板化:是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
30、 抽象:是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑
其他因素。
31、 信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它
模块来说,是不能访问的。
32、 模块的独立性:指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。 33、 耦合性:称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其
耦合性就越强,模块的独立性则越差。
34、 无直接耦合:两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何
信息。
35、 数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。 36、 标记耦合:指两个模块之间传递的是数据结构。
37、 控制耦合:指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行
块内某一功能(控制变量 )
38、 公共耦合:通过一个公共数据环境相互作用的那些模块间的耦合。(一个公式数据环境)
39、 内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部偶然内聚:一
个模块内的各处理元素之间没有任何联系。
40、 内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
模块内元素联系越紧密,内聚性越高。
41、 偶然内聚:指一个模块内的各处理元素之间没有任何联系。
42、 逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 43、 时间内聚:把需要同时执行的动作组合在一起。
44、 通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相
同的输出数据。
45、 顺序内聚:一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是下一功能
元素的输入。
46、 功能内聚:最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
47、 软件结构图:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。 48、 控制范围:是模块本身和它的下属模块的集合。
49、 作用范围:模块中的一个判定影响的所有模块的集合。作用范围应该在控制范围内。 50、 变换流由输入、变换(或处理)、输出三部分组成。
51、 事物流:某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入选择其中一个路
径来执行这种特征的DFD称为事物流。
52、 程序设计风格:是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
53、 白盒法:将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。有逻辑覆盖(语句覆盖、
判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)
54、 黑盒法:将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。等价
类划分、边界值分析、因果图、错误推测。
55、 集成测试:将模块组合起来成为一个完整的系统对其进行测试。 56、 非渐增式:是将模块先进行单元测试然后组装在一起进行测试。
57、 渐增式:是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。 58、 确认测试:按照需求规格说明书中的确定指标对系统进行功能与性能的测试。 59、 软件的可维护性:软件能够被理解、校正、适应及增强功能的容易程度。 60、 对象:是客观实体在问题域中的抽象。
61、 类:具有相似或相同性质的对象的抽象就是类。
62、 类结构:类的结构通常有一般----具体(分类结构)整体---抽象(组装结构) 63、 消息:对象之间通信的构造。
64、 软件质量:与确定的功能和性能需求一致、与成文的开发标准相一致、与所有专业开发的软件所期望的隐含
特性相一致。
65、 质量保证:向社会和用户提供满意高质量的产品确保软件从诞生到消亡为止的所有阶段的质量的活动。 66、 软件可靠性:在规定的环境下和时间里软件按要求的功能执行的概率。
67、 软件评审是一个过滤器,它使用在软件开发的各个阶段,通过软件评审可以及时的发现软件中存在的问题然
后加以改正。
68、 容错定义:规定功能的软件在出现错误是仍然可以在一定程度上完成要求的功能、规定功能的软件可以屏蔽
错误、规定功能的软件可以在出错的时候自动恢复到正常的状态、规定功能的软件在一定的程度上有容错的能力。
69、 软件配置管理:软件配置管理(SCM)用于整个软件工程过程,目标是表示变更,控制变更,确保变更的正
确实施,报告变更。SCM是用在整个软件生存周期个阶段中的变更活动。
70、 基线:是软件生存周期中各开发阶段的一个特定点,它的作用是把开发各阶段的工作划分的更加明确化,使
本来连续的工作在这些点上断开,便于检查于肯定阶段成果。
71、 静态测试:指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。 72、 原型:是指模拟某种产品的原型模型。软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系
统的重要特征。
73、 动态冗余:动态冗余的主要方式是多种模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用
的模块来顶替它并重新运行。这里须有检测、切换和恢复过程,故称其为动态冗余。
74、 模块化:是指解决一个复杂问题是自顶向下逐层把软件系统划分成若干模块的过程,每个模块完成一个特定
的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
75、 模型:是为了理解事务而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式,一个规
划,一个程式。
76、 瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。它包括可行性分析、项目开发
计划、需求分析、概要设计、详细设计、编码、测试和维护。它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
77、 增量模型:是在项目的开发工程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。增量
开发是指在项目开发过程中以一定的时间间隔开发部分工作软件;增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应稳当。增量开发和增量提交可以同时使用,也可单独使用。 78、 喷泉模型:是一种以用户需求为动力,以对对象作为驱动的模型,适合于面向对象的开发方法。他克服了瀑
布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。系统某些