- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[软件工程简答2
1.传统瀑布模型的主要缺陷是:
⑴ 阶段与阶段划分完全固定,阶段间产生的大量文档,极大地增加了工作量。
⑵ 由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果。这样,软件与用户见面的时间较长,也增加了一定的风险。
⑶ 前面未发现的错误传到后面的开发活动中,可能会扩散,进而可能会造成更不理想的效果。
造成问题的主要原因是:⑴现实的项目开发很少按瀑布模型的顺序进行,⑵用户往往难以清楚地给出所有的需求,因此,使用该模型开发软件会存在许多步确定的因素。⑶开发者常常被不必要地耽搁。
2.软件工程的目标就是建造高质量的软件。但是目前的软件开发面临着许多问题:
⑴ 对软件开发成本和进度的估计常常很不准确。
⑵ 用户常对“已完成的”软件系统不满意。
⑶ 软件产品的质量往往靠不住。
⑷ 软件常常很难维护。
⑸ 软件常常缺乏适当的文档资料。
⑹ 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
⑺ 软件成本在计算机系统总成本中所占的比例逐年上升。
3.时间内聚是指某一软件运行中有几个动作经常需要在同一个时间段内完成。
公共耦合是指若干个模块共同享有对公用数据区的读和写的访问权。
4.软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。通常有四项基本维护:纠错性维护、完善性维护、适应性维护以及预防性维护等。
5.序言性注释通常放在每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序具有引导作用。
序言性注释一般包含下列内容:
① 程序标题;有关该模块的功能和目的说明;主要算法;
② 接口说明:包括调用形式,参数描述、子程序清单;
③ 有关数据描述(重要的变量及其用途,约束或限制条件,以及其他有关信息);
④ 模块位置(在哪一个源文件中,或隶属于哪一个软件包);
⑤ 开发简历 模块设计者,复审者,复审日期,修改日期及有关说明等。
1.什么是需求分析?需求分析阶段的基本任务是什么?
需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的 目的、范围、定义和功能时所要做的所有的工作。 需求分析阶段的基本任务是:要准确的定义新系统的目标,为了满足用户需要, 回答系统必须“做什么”的问题。
2. 为什么说面向对象方法学比传统方法学在稳定性方面要好?
传统的软件开发以算法为核心,开发过程基于功能分析和功能分解。用传统方法所建立起来的软件系统的结构紧密依赖于系统所要完成的功能, 当功能需求发生变化时将引起软件结构的整体修改。事实上,用户需求变化大部分是针对功能的,因此这样的软件系统是不稳定的。面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的联系。当对系统的功能需求变化时并不会引起软件结构的整体变化,仅仅只需要作一些局部性的修改。总之,由于现实世界中的实体是相对稳定的,因此,对象为中心构造的软件系统也是比较稳定的。
3. 什么是蜕变测试?编写蜕变测试的测试用例关键点是什么?
蜕变测试依据被测软件的领域知识和软件的实现方法建立蜕变关系(Metamorphic Relation, MR),利用蜕变关系来生成新的测试用例,通过验证蜕变关系是否被保持来决定测试是否通过。编写蜕变测试的测试用例关键点就是找出蜕变关系。
4. 什么叫模块化?设计一个系统时是否分的模块越多就越好说明原因。
⑴ 模块化就是把程序划分成可独立命名且独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
⑵ 不一定。当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本 (工作量)确实减少了,但是,随着模块数量增加,设计模块间接上所需要的工作量也将增加,根据这两个因素,得出设计一个系统时并不一定模块越多越好。
5. 画数据流图要注意哪些事项?
答:⑴ 设计数据流图时只需考虑系统必须完成的基本逻辑功能,不需要考虑怎样 具体的实现这些功能。
⑵ 从顶层数据流开始。
⑶ 并不是所有数据存储和数据流都能直接从问题描述中提取出来;
⑷ 当进一步分解将涉及如何具体地实现一个功能时,就不应该在分解了;
⑸ 数据流图中个成分的命名要仔细推敲,看是否恰当;
1.就程序设计语言的工程特性而言,对程序编码有哪些要求?
就程序设计语言的工程特性而言,对程序编码有如下要求: 就程序设计语言的工程特性而言,对程序编码有如下要求:
可移植性 (2)开发工具的可利用性 (3)软件的可重用性 (4)可维护性
2. 用3种方法计算下图所示程序图的环形复杂度。
⑴ 环形复杂度等
文档评论(0)