2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
3、软件工程学包含3个要素:方法、工具、过程。
4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。
5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。
6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。
7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。
8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。
9、数据流图(DFD)是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中所经受的变化。
10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义的集合。
11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。
12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确的描述软件需求。
13、9、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩形表示属性,用直线把实体和其属性连接。
15、验证软件需求的正确性:一致性、完整性、现实性、有效性。
16、总体设计的基本目的是回答“概括地说,系统应该如何实现?”,总体设计又称为概要设或初步设计。
17、模块的程度可以有两个定性标量度量:内聚和耦合。
18、软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现可至今为止尚未发现的错误的测试。
19、软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运行。
20、软件可靠性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。
21、用面向对象方法开发软件,通常需要建立3种形式的模型:描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。
22、用面向对象方法开发软件,在任何情况下,对象模型始终都是最重要、最基本的、最核心的。
23、通常,使用UML提供的类图来建立对象模型。
24、类与类之间通常有关联、泛化(继承)、依赖和细化等4种关系。
25、在UML中,在一段为空心的三角形的连线表示泛化关系。
26、复杂问题的对象模型通常由:主题层、类与对象层、结构层、属性层和服务层。
27、广义的说,软件重用可分为知识重用、方法和标准的重用、软件成分的重用。
28、工程网络和Gantt图同样是安排进度和管理工程进度情况的强有力的工具。
29、3种典型人员组织方式:民主制程序员组、住程序员组、现代程序员组。
30、软件过程的输出信息可以分为3类计算机程序、描述计算机程序的文档、数据,这些项组成了软件过程中产生的全部信息,人们把他们统称为软件配置,而这些项就是软件配置项。
31、Cmm把软件过程从无序到有序的进化过程分成5个阶段,并把这些阶段排序,形成五个逐层提高的等级。能力的成熟度的5个等级从低到高依次是:初始级(1级)、可重复级(2级)、已定义级(3级)已管理级(4级)和优化级(5级)。
15、编码风格:持续内部文档、数据说明、语句构造、输入输出、效率、
32、软件危机的典型表现:对软件开发成本和进度的估计常常很不准确;用户对“已完成”的软件系统不满意的现象经常发生;软件产品质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计算机总成本中所占的比例逐年上升;软件开发生产效率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
33、软件不同于硬件,他是计算机系统的逻辑部件而不是物理部件。
34、软件不同于一般程序,它的一个显著特点就是规模庞大。
简单题
1、软件工程基本原理(1)用分阶段的生存周期严格管理。(2)坚持进行阶段评审。(3)实行严格的产品控制。(4)采用现代程序设计技术。(5)结果应能清楚地审查。(6)开发小组人员应该少而精。(7)承认不断改进软件工程实践的必要性。
2、软件生命周期各阶段的基本任务 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。(1)问题定义 (2)可行性研究 (3)需求分析 (4)总体设计 (5)详细设计 (6)编码和单元测试 (7)综合测试(8)软件维护
3、需求分析的任务一、确定对系统的综合要求(1)功能需求(2)性能需求(3)可靠性和可用性需求(4)出错处理需求(5)接口需求(6)约束(7)逆向需求(8)将来可能提出的需求二、分析系统的数据要求
三、导出系统的逻辑模型四、修正系统开发计划
4、改进软件设计的启发式规则(1)改进软件结构提高模块性(2)模块规模应该适中(3)深度、宽度、扇出和扇入都应适当(4)模块的作用域应该在控制域之(5)力争降低模块接口的复杂程度(6)设计单入口单出口的模块(7)模块功能应该可以预测
5、面向对象设计准则和启发式原则
(1)模块化(2)抽象(3)信息隐藏(4)弱耦合(5)强内聚(6)可重用
(1)设计结果应该清晰易懂(2)一般-特殊结构的深度应适当(3)设计简单的类(4)使用简单的协议(5)使用简单的服务(6)把设计变动减至最小
6、软件维护的几种类型
(1)改正性维护(2)适应性维护(3)完善性维护(4)预防性维护
7、决定软件可维护性因素
(1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用性
8、软件配置项
软件配置的主要任务就是控制变化,同时也负责各个软件配置项和软件各种版本的标志、软件配置审计以及软件配置发生的任何变化的报告。
(1)标识软件配置中的对象(2)版本控制(3)变化控制(4)配置审计(5)状态报告
设计题
1、等价类 有效/无效数据 边界值测试
2、UML类图的描述
3、N-S图、PAD图
论述题
(1)软件工程(2)可行性研究 问题定义阶段必须回答的关键问题是:“要解决的问题是什么”。如果不知道问题是什么就试图解决这个问题,显然是盲目的,只会自白浪费时间和金钱,最终得出的结果很可能是毫无意义的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽视的一个步骤。(3)需求分析这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题。(4)总体设计这个阶段的基本任务是,概括地回答“怎样实现目标系统?”这个问题。概要设计又称为初步设计、逻辑设计、高层设计或总体设计。(5)详细设计这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代码。(6)编码实现(语言,测试)这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。(7)维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。(8)面向对象技术(9)项目管理下载本文