《软件工程》思考题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》期末思考题
江超群
2016/12/17
1.什么是软件?软件的特点有哪些?
国标中对软件的定义为:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。可以认为:软件=程序+数据+文档
特点:软件是复杂的;软件是一个逻辑产品而不是物理产品;软件是开发的,而不是制造的;软件具有柔性;软件不会“磨损”;至今还未完全摆脱手工开发模式,大部分产品是定制的;软件成本相当昂贵。
2.什么是软件危机?软件危机的表现是什么?
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
表现:如那件开发进度难以预测;软件开发成本难以控制;用户对产品功能难以满足;软件产品质量无法保证;软件产品难以维护;软件缺少适当的文档资料。
3.软件危机产生的原因是什么?
软件本身:
1)软件本身是逻辑部件,缺乏可见性,开发过程的进展情况和质量难以预测、难以衡量。
2)不会用坏,维护意味着修改原设计。
3)规模庞大,多人合作,难以统一成高质量的整体。
开发、维护方法不当:对用户的需求没有准确的认识,仓促上阵,急于求成。
4.什么是软件工程?软件工程的基本内容有哪两个方面?
将工程的原理应用于软件设计、开发以获得有效的和经济的软件、软件开发过程和软件系统。
IEEE定义:(1)将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程;(2)上述方法的研究。
基本内容有技术和管理两方面。
5.软件工程三个要素是什么?
软件工程作为一种层次化的技术,有方法、工具和过程三大要素,
并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。
6.你知道的软件工程过程模型有哪些?
瀑布模型、增量模型、演化模型、喷泉模型、基于构件的开发模型、形式化方法模型。
7.什么是软件生命周期?它有哪几个阶段?
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护
8.从哪几方面进行可行性研究?
市场可行性、政策可行性
技术可行性一般要考虑的情况包括开发的风险即设计出的系统能否达到要求的功能和性能;资源的有效性;相关技术的发展是否支持;
经济可行性进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资。
社会可行性要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度﹑人员素质﹑操作方式是否可行。
9.软件需求分析从哪几方面进行?
可以分为:功能需求、性能需求、可靠姓需求和可用性需求、出错处理需求、接口需求等多个方面。
10.进行需求分析的步骤什么?
1)确定系统的综合需求;
2)分析系统的数据需求;
3)导出逻辑模型;
4)修正系统开发计划。
11.用什么图可以描述系统的业务?
业务流程图或UML活动图
组织结构图
12.用什么图可以描述系统的功能?
数据流图或UML用况图
13.什么是数据流图?它包括几种基本符号?其作用是什么?
是描述数据处理的工具。从数据传输和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,是一种功能模型。
图 1 数据流图基本符号
14.画出你所做项目的0层(或1层)数据流图
15.说出画数据流图的原则,至少5条
1)数据流图上所有符号只限于四种基本图形元素
2)主图必须包括四种基本元素,缺一不可
3)主图上的数据必须封闭在外部实体之间,外部实体可以不止一个
4)每个加工至少有一个输入数据流和一个输出数据流
5)每个数据流都应有与相联系的加工
6)数据文件必须既有读操作,也有写操作
7)需按层给加工编号(但不表示先后顺序),
8)任何一个子图必须与它上一层的一个加工对应,二者的输入数据流和输出数据流必须一致
9)图上每个元素都必须有名字
10)数据流图中不可夹带控制流(这与程序流程图有本质区别)
11)初画时可忽略琐碎的细节,集中精力于主要的数据流
16.什么是数据字典,它与数据流图有什么关系?
是关于数据信息的集合,它对数据流图中的各个元素作完整的定义与说明,是数据流图的补充工具。
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。
关系:数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流字典中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
17.需求分析阶段产生的主要文档?
1)软件需求规格说明书
2)初步的用户手册
3)确认测试计划
18.什么是软件概要设计,该阶段的基本任务是什么?
概括地回答“怎样实现目标系统”。
基本任务:
1)设计软件系统结构(软件结构)
2)用户界面及数据库设计
3)编写概要设计文档
a)概要设计说明书
b)数据库设计说明书
c)用户手册
d)修订测试计划
4)评审
19.什么是模块独立性?衡量模块独立程度的标准是什么?
使每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。
衡量模块独立性程度的度量标准
a)耦合:衡量不同模块间相互依赖的紧密程度。
b)内聚:衡量一个模块内部各元素彼此结合的紧密程度。
20.什么是耦合什么是内聚
耦合:模块间的联系的紧密程度。无耦合、松散耦合、紧密耦合。
由低到高:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共环境耦合、内容耦合。
内聚:模块内各个元素彼此结合的紧密程度。
由低到高:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚。