当前位置:文档之家› 软件工程思考题

软件工程思考题

《软件工程》期末思考题江超群2016/12/171•什么是软件?软件的特点有哪些?国标中对软件的定义为:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

可以认为:软件=程序+数据+文档特点:软件是复杂的;软件是一个逻辑产品而不是物理产品;软件是开发的,而不是制造的;软件具有柔性;软件不会“磨损”;至今还未完全摆脱手工开发模式,大部分产品是定制的;软件成本相当曰車昂贵。

2•什么是软件危机?软件危机的表现是什么?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

表现:如那件开发进度难以预测;软件开发成本难以控制;用户对产品功能难以满足;软件产品质量无法保证;软件产品难以维护;软件缺少适当的文档资料。

3. 软件危机产生的原因是什么?软件本身:1)软件本身是逻辑部件,缺乏可见性,开发过程的进展情况和质量难以预测、难以衡量。

2)不会用坏,维护意味着修改原设计。

3)规模庞大,多人合作,难以统一成高质量的整体。

开发、维护方法不当:对用户的需求没有准确的认识,仓促上阵,急于求成。

4. 什么是软件工程?软件工程的基本内容有哪两个方面?将工程的原理应用于软件设计、开发以获得有效的和经济的软件、软件开发过程和软件系统。

IEEE定义:⑴将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程;(2)上述方法的研究。

基本内容有技术和管理两方面。

5. 软件工程三个要素是什么?软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。

6•你知道的软件工程过程模型有哪些?瀑布模型、增量模型、演化模型、喷泉模型、基于构件的开发模型、形式化方法模型。

7•什么是软件生命周期?它有哪几个阶段?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护从哪几方面进行可行性研究?市场可行性、政策可行性技术可行性一般要考虑的情况包括开发的风险即设计出的系统能否达到要求的功能和性能 资源的有效性;相关技术的发展是否支持;经济可行性进行开发成本的估算以及了解取得效益的评估 ,确定要开发的项目是否值得投资。

社会可行性要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度 、人员素质、操作方式是否可行。

软件需求分析从哪几方面进行?可以分为:功能需求、性能需求、可靠姓需求和可用性需求、出错处理需求、接口需求等多个方进行需求分析的步骤什么?确定系统的综合需求; 分析系统的数据需求; 导出逻辑模型; 修正系统开发计划。

用什么图可以描述系统的业务?业务流程图或UML 活动图 组织结构图用什么图可以描述系统的功能?数据流图或UML 用况图什么是数据流图?它包括几种基本符号?其作用是什么?是描述数据处理的工具。

从数据传输和加工的角度,以图形的方式刻画数据流从输入到输出的移 动变换过程,是一种功能模型。

数据流数据存储图1数据流图基本符8.9.面。

10.1) 2) 3) 4)11.12. 13.加工{处理)•变换数拒的处理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. 什么是耦合?什么是内聚?耦合:模块间的联系的紧密程度。

无耦合、松散耦合、紧密耦合。

由低到高:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共环境耦合、内容耦合。

内聚:模块内各个元素彼此结合的紧密程度。

由低到高:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚。

21. 画出你所做项目的软件结构图22. 用户界面设计准则有哪些?1)用户界面适合于软件的功能2)容易理解(无误、提示信息)3)一致性(风格、术语、步骤、动作)4)减少用户记忆的负担5)及时反馈信息6)出错处理7)适应各种用户(初学者/专家、色盲等)8)国际化(图标、语言、单位、日期格式等)9)个性化(与众不同、记忆深刻)10)合理的布局(行列对齐、尺寸合理、缩放正常)11)和谐的色彩23. 概要设计阶段产生的主要文档?a)概要设计说明书b)数据库设计说明书c)用户手册d)修订测试手册24. 你在概要设计说明书中主要使用的图是什么,表达什么?25. 什么是详细设计?内容?说明应该怎样具体地实现这个系统。

主要内容:数据结构与算法26. 描述算法的工具有哪些?算法流程图;盒图(N-S图);问题分析图(PAD图);判定表;判定树;过程设计语言(伪代码、PDL)图2程序流程图和盒图图3 PAD 和判定表r 头尊艇L 国内柔客其它船 拧李垂呈-W>3(1厂头等舱—国外乘客L 其它龍行李重贡—免费^<-JU图4判定树27. 算法流程图和系统流程图的区别是什么?系统流程图:描绘系统物理模型的传统工具。

他的基本思想是用图形符号以黑盒子的形式描绘系统 理念的每个部件包括程序, 文件,数据库,表格,人工过程等,表达信息在给个部件之间流动的情况, 而不是表示对信息进行加工处理的控制过程。

反映了主体框架。

程序流程图:描述了程序中控制流地情况,即程序中处理的执行顺序和执行序列所依赖的条件, 途中有向线段表示的是控制流从一个处理走到下一个处理。

28. 详细设计阶段产生的主要文档?详细设计说明书■ 0世)陡畀咆 (3)s^kaff wS f 循坏体)W*FAT UNTILP(Problem Analysis Diagram)(1}帧序给构 住)选弹站构UMIL C(后测试搪环112 3 4 S 6 7 89国内彙客 T T TT F FF F头嫌枪T F TF T FT FFPT T F F TT 1f¥M*W<30 TFFFFFFFF处费7(W-30) X2V(W-W) X3V(W-30) X4VV(W-30) X6 VV(W-30) X8V(W-3<J) X13V残疾乘客」U-30)*2FF 常乘客 JU 3«1)*4 -硯疾乘客JU-3O>*3L 正當乘 ^_(W-30)*6 残疾乘客JU-30)M 匚正當乘客 正常乘客尸12(el)AB(c2)(4)・H1LE ■豎塑 (5) UKTlLtXggWHIlF PS __(糖耳*0门〕聲夕结构:4)多分支送择型(先测试循29. 什么是软件设计说明书?主要包括什么内容?概要设计说明书是概要设计阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计奠定基础。

详细设计说明书是详细设计阶段的主要成果,也是编码阶段主要参考的文档。

主要包括引言、总体设计、程序设计说明。

30. 你认为编码时要注意的问题有哪些?1)变量命名规范2)编码格式规范3)多加注释4)少用或不用goto语句5)使用C/C++时,申请了内存空间就要记得释放内存空间31. 什么是软件测试?应该由谁去测试?软件测试是软件开发过程中必须伴有的质量保证活动。

软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。

通常,项目的开发人员不参与系统测试。

测试小组通常是独立于实现人员的,理想情况下,某些测试小组成员已经是有经验的测试人员。

测试人员需要熟悉测试系统规格说明,而且熟悉测试方法和工具。

32. 软件测试的目标是什么?软件调试的目的是什么?测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。

软件调试的目的是确定错误的位置、性质并纠正。

33. 什么是白盒测试,设计白盒测试方案的技术是什么?白盒测试是根据被测程序的逻辑结构设计测试用例;力求提高测试覆盖率。

设计白盒测试用例的方法:逻辑覆盖法。

语句覆盖、判定覆盖、条件覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖。

34. 什么是黑盒测试,黑盒测试的主要方法是什么?黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。

在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

主要测试方法:等价类划分、边界值分析法、错误推测。

35. 什么是测试用例?一个测试用例包括哪些内容?测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

相关主题