软件工程复习提纲。
1. 软件的定义及其分类?
定义:程序、文档、支持程序运行的数据以及与程序有关的文档资料的完整集合。
分类:按功能划分:应用软件,系统软件,支撑软件;
按规模划分:
按工作方式划分:实时处理软件,分时软件,交互式软件,批处理软件。
按服务对象的范围划分:项目软件,产品软件。
按使用频度进行划分:
按软件失效的影响进行划分:
2. 软件危机的概念、产生原因及其表现?
a) 软件危机:指的是在计算机软件开发和维护过程中所遇到的一系列严重的问题。
b) 表现:软件代价高、开发进度难以控制、工作量估计困难、质量差、修改维护困难。
c) 产生的原因:用户的需求不明确、缺乏正确的理论指导、软件规模越来越大、软件的复杂度越来越大、软件灵活行要求高、影响软件生产率与质量因素十分复杂。
3. 软件工程概念?
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和最先进的软件开发技术结合起来,应用到软件开发和维护过程中,来解决软件危机问题。
4. 软件生命周期及其阶段。
a) 问题定义。
b) 可行性研究。
c) 需求分析。
d) 软件设计(总体设计、详细设计)
e) 编码和单元测试。
f) 综合测试(集成测试)、验收测试。
g) 软件维护。
5. 软件工程的过程模型及其特点?
a) 瀑布模型:瀑布模型适用于需求很明确、很稳定的项目;
b) 快速原型法:适用于对需求不是很明确的项目;
c) 螺旋模型:适合于内部开发的大型项目。
6. 可行性研究所包含的方面?
a) 技术可行性。
b) 经济可行性。
c) 法律可行性。
d) 运行可行性。
7. 成本效益分析(计算题)?
a) 货币的时间价值。
今天的货币价值=将来的货币/(1+银行的利率)n年。
b) 投资**期。
c) 纯收入:在整个生命周期之内系统的累积经济效益与投资之差。
例题:修改一个已有的库存清单系统,使它在每天送给采购员一份订货报表。修改已有的库存清单程序并且编写产生报表的程序,估计总共需5000元;系统修改后能及时订货将消除零件短缺问题,估计因此每年可以节省2500元。
投资**期:两年节省4232.14元,离投资还差5000-4232.
14 = 767.86元,767.86/1785.
71 = 0.43,投资**期为2.43年。
8. 需求分析阶段的任务?
建立分析模型(数据模型、功能模型、行为模型)、产生正式的需求文档。
9. 需求的分类?
a) 功能需求:系统应该做什么,不应该做什么。
b) 非功能需求:性能、可靠性、可用性等。
c) 领域需求:其**不是系统的用户,而是系统的应用领域,反应该领域的特点。
10. 需求的获取的方法?
联合分析小组、访谈、问题分析与确认、快速原型法。
11. 软件规模的估计算法?
a) **行技术:
每个子功能的**行数平均值:le = a + 4m + b)/6;
b) 任务估算法。
c) delphi方法。
d) 类比法。
12. 结构化分析方法?
模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常来讲,模型是由一**形符号和组织这些符号的规则组成。
结构化分析方法是一种建模技术。它建立如下的三种模型:
数据模型e-r图、功能模型数据流图、行为模型状态迁移图。
13. 结构化程序设计的概念?
尽可能少地使用goto语句的程序设计方法。最好仅在检测出错误时才使用goto 语句,而且总是使用前向goto语句。
经典定义:程序**块仅仅通过顺序、选择、循环这三种基本的控制流程结构进行连接,并且每个**块仅有一个入口和一个出口,则该程序是结构化的。
14. 模块化程序设计(衡量模块独立性的定性标准)?
模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
衡量标准:高内聚,低耦合。
15. 逐步求精的miller 法则?
为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
miller 法则:一个人的注意力的极限是集中注意力在7+/-2个事物上。
16. 人机界面的设计包含的几方面?
系统的响应时间、用户帮助设施、出错信息处理、命令交互。
17. 软件设计过程影遵循的基本原理?
模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。
18. 详细设计的工具(画图题)
程序流程图、盒图(n-s图)、pad图、判定表、判定树、过程设计语言(pdl)。
a) 程序流程图:
b) 盒图(n-s图)
c) pad图。
d) 判定表。
e) 判定树。
f) 过程设计语言(pdl)
一般说来,pdl是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。
19. 程序设计语言的分类?
第一代语言是机器语言、第二代语言是汇编语言、第三代语言是高级程序设计语言、***语言(4gl)。
20. 编码的规约?
注释、缩进行宽、空行空格、陈述语句、变量的声明、访问权限的声明、常量的声明、变量的代入、与操作系统相关的分隔符不要写死。
21. **优化的原则?
等价原则、有效原则、合算原则。
22. 黑盒测试、白盒测试、回归测试、alpha测试、beta测试?
黑盒测试:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
白盒测试:白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。
alpha测试:α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。
回归测试:回归测试是指修改了旧**后,重新进行测试以确认修改没有引入新的错误或导致其他**产生错误。
beta测试:beta测试是一种验收测试。所谓验收测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段,通过了验收测试,产品就会进入发布阶段。
23. 静态白盒测试的方式及其含义?
同事审查、公开陈述、检验(最正式的审查类型)
24. 软件维护的分类?
改正性维护、适应性维护、完善性维护(比重最大的维护50%-60%)、预防性维护。
25. 项目进度计划gantt图 (画图题)
gantt图能很形象地描绘任务分解情况,以及每个子任务(作业)的开始时间和结束时间,因此是进度计划和进度管理的有力工具。它具有直观简明和容易掌握、容易绘制的优点。
实例:26.cmm—软件能力成熟度模型。
级别:初始级、可重复级、已定义级、已管理级、优化级。
26. uml统一建模语言的5种视图、9种图及其符号表示?
5重视图:a) 用例视图。
b) 逻辑视图。
c) 并发视图。
d) 组件视图。
e) 配置视图。
9种图:a) 用例图。
b) 类图。
c) 对象图。
d) 时序图。
e) 协作图。
f) 状态图。
g) 活**。
h) 组件图。
i) 配置图
27. 数据流图的表示符号?
28. 面向对象技术的特点?
面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。
29. 软件复用的概念及分类?
是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
分类:黑盒复用和白盒复用、横向复用和纵向复用。
30. 净室的概念?
净室(clean roon)软件工程是一种应用数学和统计学,以经济的方式生产高质量软件的工程技术 。
软件工程复习
单选填空简答思考题。1 传统的软件瀑布生命模型包括哪六个方面?需求 分析 设计 实现 交付后维护 退役2 传统瀑布生命模型的中交付后维护包括哪三种?改正性维护 适应性维护 完善性维护3 现代维护和传统维护的观点有何不同?1 传统维护的观点是先开发后维护。2 现代维护的观点是无论是在软件安装前还是安装...
软件工程复习
软件工程复习资料。备注 1.老师反复强调我们之前做过的作业要熟练掌握 需求陈述 实验课画的模型 自己画。的数据流图 2 蓝颜色的字都是老师上课补充的,还有很多需要自己去补充,欢迎修正完善。核心问题 在考试做大是要表述清楚详细,关。键词要有 问题定义 专用名词表要解决的问题是什么?达要准确,不能更改 ...
软件工程 复习
1.概念 软件危机是指在计算机软件开发 使用与维护过程中遇到的一系列严重问题。2.为什么会产生软件危机?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致使软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。3.软件危机的表现 经费预算经常突破...