(仅供参考,兄弟一不图财二不图钱的,各位看官觉着不错的留个赞吧,谢谢您嘞)
1.软件
- 什么是软件?
- 具有各种不同功能的程序称为软件
- 软件和硬件不同的原因?
- 软件和硬件生长不同
- 软件最大的特点?
- 逻辑。
- 软件和硬件最大的不同是?
- 逻辑性。
- 什么是软件危机?
计算机软件在开发、维护和应用过程中一系列严重的问题 - 软件危机的表现?
在软件开发过程中,会经常出现一些不能按时完成任务、产品质量得不到保证、工作效率低下和经费严重超支等现象。 - 软件危机的原因?
软件本身的特点;对软件开发的内在规律理解的偏差 - 绘制出软件的失效率曲线?解释该图的含义?
由于业务、硬件环境、需求等的改变,软件的失效率会不断变化。该图说明软件会退化
2.软件工程
- 什么是软件工程(工程)?
是一种层次化技术,是一种新型的交叉学科,涉及到时间成本,多人协作,成本计算,质量要求等
3.软件的生命周期
-
什么是软件的生命周期?
从设计该产品的构想开始,到最终被市场淘汰 的全过程 -
软件开发分为哪几个阶段?
可行性研究->需求分析->软件设计->编码->测试->软件维护->签订合同 -
了解结构化分析模型?
1.数据字典:描述软件使用或产生的所有数据对象
2.数据流图:数据再软件系统中的流向和逻辑
3.实体-关系图:数据对象之间的关系
4.状态转换图:用于行为建模
4.软件过程模型
-
瀑布模型
- 优:简单易执行,风险较低
- 缺:无法适应需求变更。阶段间有顺序性和依赖性。不可回溯。
-
螺旋模型
- 优:用于风险较大的大型项目,将风险分析扩展到各个阶段
- 缺:风险分析复杂,可操作性不强
-
快速原型模型
- 优:只适合小型系统开发。减少了软件需求不明带来的风险。生命周期短
- 缺:多次修改可能导致产品质量低下,难以维护。
-
增量模型
- 优:开发顺序灵活;可分批提交,让用户及时了解进展;以组件为单位,降低了软件开发风险
- 缺:要求待开发的软件系统可被模块化
-
统一软件开发过程模型(RUP)
- 优:集中了多个软件开发模型的特点,以用例驱动
- 缺:对开发人员素质要求较高
-
敏捷开发模型
- 优:适用于需求常常发生变化的软件开发
- 缺:适用于校项目,不适用于大项目
-
喷泉模型
- 优:提高软件开发效率,节省开发时间
- 缺:不利于项目的管理
5.软件设计原则
- 模块之间应保持什么原则?
低耦合(减少类间调用),高内聚(一个函数完成一个功能)。 - 为了提高模块的独立性,应该怎么办?
降低模块之间的耦合度。耦合度越低,相互影响就越小,发生异常连锁反应就越小;对一个模块进行维护时,对其他模块的正常运行影响不会太大。
提高模块的内聚程度。 - 流程图的框框类型别忘了!
6.软件测试
- 什么是软件测试?
分类:
按技术方法分:黑盒(决策表),白盒(基本路径法)。
按过程分:单元、集成、系统、验收测试 - 什么是测试用例?
为达到最佳的测试效果或高效地揭露隐藏的错误而精心设计的少量测试数据并执行 - 软件测试的一般步骤?
单元、集成、系统、验收测试 - 单元测试是分区的吗?谁来做?
测试每个单独的模块,书上写的由程序员来测。实际上由软件测试人员来淦
7.UML(统一建模语言)
- 什么是UML?
一种通用的可视化建模语言,可以用来描述、可视化、构造和文档化软件密集型系统的工作 - 什么是用例?
对系统提供的功能的描述