名词解释
发布时间:2019-09-20 21:32:47
发布时间:2019-09-20 21:32:47
名词解释
1. 软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
2. 软件的生命周期:一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
3. 软件工程(思想方法):概括的说,软件工程是知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
4. 软件过程:软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
5. 耦合:对一个软件结构内不同模块之间互连程度的度量
6. 内聚:内聚标志着一个模块内各个元素彼此结合的紧密程度。
7. 扇入:一个模块的扇入表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的,但是,不能违背模块独立原理单纯追求高扇入。
8. 扇出:扇出是一个模块直接控制(调用)的模块数目。扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块;扇出国小(例如重视1)也不好。
9. 作用域:受该模块内一个判定影响的所有模块的集合
10. 控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。
11. 软件测试(类型):(1)测试是为了发现程序中的错误而执行程序的过程。(2)好的测试法案是极可能发现迄今为止尚未发现的错误的测试方案。(3)成功的测试时发现了至今为止尚未发现的错误的测试
类型:黑盒测试:把程序看做一个黑盒子,完全不考虑程序的内部结构和处理过程。也 就是说,黑盒测试是在程序接口进行的测试,他只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称功能测试。
白盒测试:前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预算要求正确工作。白盒测试又称结构测试。
12. 模块测试:把每个模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确性的测试方案。在这个测试步骤中所发现的往往是编码和详细设计的错误。
13. 集成测试:把经过测试的子系统装配成一个完整的系统来测试。
14. 验收测试:把软件系统作为单一的尸体进行测试,测试内容与系统测试基本类型,但是它是在用户积极参与下进行的,而且可能主要使用实际数据进行测试。
15. 软件维护(类型+所占比例):在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。完善性维护占50%~66%,改正性维护占17%~21%,适应性维护占18%~25%,其他维护活动只占4%左右。
16. 软件可维护性:维护人员理解、改正、改动或改进这个软件的难易程度。
17. 可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率
18. 可用性:程序在给定的时间点,按照规格说明书的规定,成功地运行的概率
19. 调试:在测试发现错误之后排除错误的过程。
20. Rovtional统一过程:(1)迭代式开发(2)管理需求(3)使用基于构件的体系结构 (4)可视化建模(5)验证软件质量(6)控制软件变更
21. 决定软件可维护性的因素:
(1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用性
22. Alpha测试和Beta测试(了解):Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现的错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的
Beta测试由软件的最终用户们在一个或多个客户场所进行。与Alpha测试不同,开发者
通常不在Beta测试的现场,因此,Beta测试是软件在开发者不能控制的环境中的“真
实”应用。用户记录在Beta测试过程中遇到的一切问题,并且定期把这些问题报告给
开发者。
23. 从哪四个方面验证软件需求:
1) 一致性:所有需求必须是一致的,任何一条需求不能和其他雪球互相矛盾
2) 完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能能或性能。
3) 现实性:制定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从此案有技术水平出发判断需求的现实性。
4) 有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。
24. 可行性研究的定义和任务:
定义:
任务:(1)导出系统的逻辑模型 (2)肯定问题定义,改正性 (3)制定粗略的进度、建议和计划 (4)占总成本的 5%--10%
25. 系统流程图的作用:用来描述物理系统的工具。
基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程)。
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。即:系统流程图≠程序流程图
26. 结构程序设计:
结构化程序设计的经典定义:
如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
结构化程序设计的更全面的定义:
尽可能少用GO TO语句的程序设计方法,最好仅在检测出错误时才使用GO TO语句,而且应该总使用前向GO TO语句。
概念题(填空、选择)
1. 常用的软件过程模型,特点,适用范围
1) 瀑布模型的特点:
(1)阶段间具有顺序性和依赖性
(2)推迟实现的观点 —— 典型特点
(3)质量保证的观点
2)快速原型模型的特点:
(1) 出品速度快;
(2) 逐步求精;
(3) 开发阶段迭代。
3)增量模型的特点:
(1) 结合了线性模型和原型模型的特点;
(2) 每个增量可以结合原型法;
(3) 系统的问世提前→“增量1”
4)螺旋模型的特点:
(1)有利于已有软件的重用;
(2)软件质量成为软件开发的一个重要目标;
(3)减少了软件测试带来的风险;
(4)维护成为模型的一个周期,与开发无本质区别。
5)喷泉模型特点
2. 需求分析阶段的图形工具及作用(数据流图,字典,系统流程图)
(1) 层次方框图
“自顶向下,逐层细化”
(2) IPO图 (IBM)
“输入/处理/输出图”
(3) 状态转换图
3. 总体设计的设计原理(目标—设计软件结构—表示工具(图)—层次图、HIPO图,**概念(启发规则))
(1)模块化: 把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,模块集成起来构成一个整体可完成用户指定的功能。
(2)抽象:抽出事物本质特性而不考虑细节
软件设计:从抽象概括到具体实现的过程
具体 → 抽象 → 具体
(系统功能)(数学建模)(程序代码)
(3)逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
(4)信息隐藏和局部化
信息隐藏原理:应这样设计和确定模块,使得一个模块内包含的信息对于不需要这些 信息的模块来说,是不能访问的。
局部化:把一些关系密切的软件元素物理地放得彼此靠近。
(5)模块独立:希望设计这样的软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。
表示工具
(1)层次图
(2)(2)HIPO图=H图+每个模块的IPO图(H图:带编号的层次图)
4. 详细设计的过程,描述工具,任务(设计程序结构)(图形表格语言)
任务:过程设计,即设计软件体系结构中所包含的每个模块的实现算法;
数据设计,即设计软件中所需要的数据结构;
接口设计,即设计软件内部各个模块之间、软件与协作系统之间以及软件与使用者之间的通信方式。
5. 微模型(测试阶段与开发阶段是怎样对应例确认测试——需求规格说明书)
6. 面向对象,分析(UML四种视图(逻辑,用例,组建,部署)及对应关系),说出图的构成要素(生命线,消息……[顺序图]),图的作用