10次作业和模拟题的简答题1.什么是软件工程过程?它包含哪些过程?2.结构化方法总的指导思想是什么?自顶向下逐层分解3.软件开发的目标是什么?产生满足规格说明的软件;4.原型的作用是什么?原型法主要价值是可视化,强化沟通,降低风险,节省后期变更成本,提高项目成功率。5.爆布模型有哪些局限性?5.你认为一个系统分析员的理想训练和基础知识是什么?请说明理由。答:理由:素质:6.可行性研究主要研究哪些问题?试说明之。答:可行性研究从经济、技术、法律用户操作等方面分析给出的解决方案是否可行。5.如何理解模块独立性?用什么指标来衡量模块独立性?参考(书上)1:参考2:模块独立:具有独立功能而且和其他模块之间没有过多的相互作用的模块。模块独立程度的度量标准:内聚和耦合。6.模块独立性与信息隐蔽(反映模块化有效程度的属性)有何关系?参考:信息隐蔽信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。模块独立模块独立是指每个模块完成一个相对独立的子功能,并且与其他模块之间的联系简单。衡量模块独立程度的度量标准有两个:耦合和内聚。耦合是指模块之间联系的紧密程度。耦合度越高则模块的独立性越差。按耦合度从低到高依次有7种耦合方式。非直接耦合(独立运行)数据耦合(用参数表传递简单数据)标记耦合(传递数据结构或者一部分)控制耦合(传递的信息包括控制模块的信息)外部耦合(模块与软件之外的环境有关)公共耦合(多个模块引用同一全局的数据区)内容耦合(访问内部数据,代码重叠或者多个入口)内聚是指模块内部各元素之间联系的紧密程度内聚度越低模块的独立性越差。按内聚度从低到高依次有7种内聚种类。偶然内聚(模块完成的多个任务,任务之间的关系松散)逻辑内聚(模块完成逻辑相关的一组任务)瞬时内聚(模块的所有任务必须在同一时间间隔内执行)过程内聚(模块的处理元素相关而且按照特定的次序执行)通信内聚(模块的所有元素集中在一个数据结构区域上)顺序内聚(模块的处理元素相关,必须顺序执行)功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)21.PAD图的特点是什么?讲义193页码22.用PDL表示的程序结构一般有哪几种?PDL(程序设计语言):描述功能模块的设计算法和加工细节的语言,用于描述程序设计。用PDL表示的程序结构:(1)数据说明(2)子程序结构(3)分程序结构:1)顺序结构2)CASE型3)WHILE循环4)UNTIL型循环5.软件复杂性有哪几类?软件复杂性度量模型应遵循哪些基本原则?软件复杂性有五种:⑴逻辑复杂性⑵接口复杂性⑶计算复杂性⑷I/O复杂性⑸程序的可读性基本原则:为了度量程序复杂性,要求复杂性度量满足以下假设:1)它可以用来计算任何一个程序的复杂性;2)对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算;3)如果增加程序中指令条数、附加存储量或计算时间,并不能降低程序的复杂性。4.为什么软件需要维护?维护有哪几种类型?简述它们的维护过程。答:进行维护的原因归纳为3种:p462(1)(2)(3)维护类型有4种:(1)改正性维护:的错误在某些特定的环境下就会在软件交付使用后,由于开发时测试不彻底,必然有一部分隐藏的错误被带到运行阶段,这些隐藏的错误在特定的环境下就会暴露出来。为此进行诊断和改正的过程,叫做改正性维护。改正性错误必须改正的错误包括:设计缺陷、逻辑缺陷、编码缺陷、文档缺陷、数据缺陷等。(2)适应性维护:当软件运行环境发生变化时,为了使软件适应这种变化,而去修改软件的过程,叫做适应性维护。(3)完善性维护:在软件的使用这些过程中,用户会对软件提出新的功能和性能要求。为满足这些要求,需要修改或者在开发软件。以扩充软件功能。增强软件性能、改进信息处理效率、提高软件的可维护性,这些维护活动叫做完善性维护。(4)预防性维护:预防性维护目的是为了提高软件的可维护性和完善性。预防性维护定义:采用先进软件工程方法对需要维护的软件或者软件中某一部分(重新)进行设计、编制和测试。在软件维护阶段所花费的工作量中,预防性维护只占很少比例,而完善维护占了一半以上,有人把预防性维护归入完善性维护。7.改错性维护与“排错”是否是一回事?为什么?答:改错性维护:在软件交付之后,针对在特定情况下暴露的本来隐藏的错误进行诊断和改正的过程。排错:在软件测试阶段,程序存在大量的bug(错误),通过测试来发现错误,通过排错来纠正错误。