还剩5页未读,继续阅读
文本内容:
3、软件工程为什么要强调规范化和文档化?答案软件工程强调规范化和文档化规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的运用和维护,在开发过程中各类相关人员借助于文档进行沟通和沟通另外,在开发过程中产生的各类文档使得软件的生产过程由不行见变为可见,便于管理者对软件生产进度和开发过程进行管理在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量
8、请画图说明软件工程的层次化结构,并具体分析中间两层的内容软件工程的内容具有层次化结构,最底层是质量保证层,中间是过程层和方法层,最上层是工具层见图工具层一q~~方法层n।过程层।质量保证层其中过程层定义了一组关键过程域,目的是保证软件开发过程的规范性和可控性方法层供应了软件开发的各种方法,包括如何进行软件需求分析和设计,如何实现设计,如何测试和维护等方法
15、请给出软件工程七条基本原理中的随意三条基本原理原理L用分阶段的生命周期安排严格管理原理
2.坚持进行阶段评审原理
3.实行严格的产品限制原理
4.采纳现代程序设计技术原理
5.结果应能清晰地审查原理
6.开发小组的人员应当少而精原理
7.承认不断改进软件工程实践的必要性
1.软件工程的主要目标是什么?软件工程旨在开发满足用户须要、刚好交付、不超过预算和无故障的软件,其主要目标如下1实现预期的软件功能,达到较好的软件性能,满足用户的需求2增加软件过程的可见性和可控性,保证软件的质量3提高所开发软件的可维护性,降低维护费用4提高软件开发生产率,刚好交付运用5合理预算开发成本,付出较低的开发费用
2.简述软件过程模型答1)软件过程是人们开发和维护软件及相关产品的活动、方法、实践和改进的集合它明确定义软件过程中所执行的活动及其依次,确定没一个活动内容和步骤,定义每个角色和职责
(2)软件工程将软件开发和维护的过程概况为8个大的活动问题定义、可行性探讨、需求分析、总体设计、具体设计、编码、系统测试和运行维护1试从软件的特点动身分析软件危机产生的缘由答案:1软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必需通过视察、分析、思索和推断才能了解它的功能和性能2软件对硬件和环境有着不同程度的依靠性,这导致了软件升级和移植的问题计算机硬件和支撑环境不断升级,为了适应运行环境的改变,软件也须要不断维护,并且维护的成本通常比开发成本高很多3软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用“量身订做”软件长期以来,软件给人的感觉是修改几条指令很简洁,客户总是强调软件要适应自己的业务需求因此,软件产品大多是为客户“订做”的,通用性差4软件涉及人类社会的各行各业,经常涉及一些行业学问,这对软件工程师提出了很高的要求5软件是与文学艺术作品相像的精神作品,与体力劳动相比,精神活动过程的特点是“不行见性”,这大大增加了组织管理上的困难
2、面对对象的分析通常要建立三个模型,请问三个模型的作用?1)功能模型表达系统的具体需求,为软件的进一步分析和设计打下基础在面对对象方法中,由用例图和场景描述组成2)对象模型表示静态的、结构化的系统“数据”性质描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构3)动态模型描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“限制”特性
5、请说明对象模型的作用是什么?对象模型表示静态的、结构化的系统“数据”性质描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构在面对对象方法中,类图是构建对象模型的核心工具
6、请说明图的作用,并给出一个图的模板数据流程图中的处理本应当放在数据字典中进行定义,但是由于处理与数据是有肯定区分的两类事物,它们各自有独立的描述格式,因此在实际项目中通常将处理说明用图标描述下面是项目中常用的处理说明模板.简述模块独立性,内聚与耦合答模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简洁的一般采纳两个准则度量模块独立性即模块间耦合和模块内聚耦合是模块之间的相互连接的紧密程度的度量内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量模块独立性比较强的模块应是高内聚低耦合的模块.衡量模块独立性的两个标准是什么?它们各表示什么含义?答
(1)两个定性的度量标准耦合与内聚性
(2)耦合性也称块间联系指软件系统结构中各模块间相互联系紧密程度的一种度量模块之间联系越紧密,其耦合性就越强,模块的独立性则越差
(3)内聚性也称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量模块内元素联系越紧密,内聚性越高
7、什么是耦合?什么是内聚?在软件设计中应当保持模块的独立性原则反映模块独立性的有两个标准内聚和耦合内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量模块之间彼此依靠的程度软件设计时追求高内聚、低耦合
9、请说明快速原型化模型的基本思想在需求分析的同时、以比较小的代价快速建立一个能够反映用户主要需求的原型系统用户在原型系统上可以进行基本操作,并且提出改进看法,分析人员依据用户的看法完善原型,然后再由用户评价,提出建议,如此往复直到开发的原型系统满足了用户的需求为止基于快速原型化模型的开发过程基本上是线性的,从创建系统原型到系统运行,期间没有反馈环这是由于开发人员是在原型的基础上进行系统分析和设计,而原型已经通过了用户和开发组的审查,在设计阶段由于有原型作设计参考,所以设计的结果正确率比较高
10、请举例说明用例之间的包含关系和扩展关系的区分?包含关系用于构造多个用例共同的活动例如,在系统中,取钱、查询、更改密码等功能都须要验证用户密码这种状况下应当将密码验证功能独立出来,便于复用、削减冗余一个用例扩展另一个用例的功能,例如,在图书馆信息管理系统中,读者还书时,系统检查所还图书是否有预订记录,假如有则执行“通知”用例
9.简述在项目开发时选择程序设计语言的主要考虑的因素答1编程人员的水平和编程经验;2待开发的软件类型;3算法和计算困难性;4数据结构的困难性;5软件的开发成本和时间要求;6软件可移植性要求;7可用的软件工具
11、软件设计中的抽象是什么意思?所谓抽象就是将事务的相像方面集中和概括起来,短暂忽视它们之间的差异或者说,抽象就是抽出事务的本质特性而短暂不考虑它们的细微环节.
9.活动图与状态图的区分?.答
(1)描述的重点不同活动图描述的是从活动到活动的限制流;状态图描述的是对象的状态及状态之间的转移
(2)运用的场合不同在分析用例、理解涉及多个用例的工作流、处理多线程应用等状况下,一般运用活动图;在显示一个对象在其生命周期内的行为时,一般运用状态图
7.等价分类法的基本思想是什么?答依据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试假如某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误13试分析结构化方法存在的主要问题是什么?\答1结构化方法分析和设计阶段所应用的模型之间存在鸿沟分析阶段的主要模型是数据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图之间须要进行转换不同的人转换出的模块图可能不同,有很大的随意性2需求分析的细化程度没有标准,只能凭借分析人员的阅历自己把握;需求分析的过程是在一种瀑布形式,当需求变更时,功能改变就会导致软件模块结构发生改变,造成了软件结构不稳定3结构化程序设计将数据定义与处理数据的过程相分别,不利于软件复用4结构化方法设计的软件结构不稳定,缺乏敏捷性,可维护性差
14、请说明判定表的作用及其结构判定表是结构花设计的工具,用于描述多重条件的处理分为4各部分条件列表、条件组合、操作列表、特定条件下的操作组合
16、结构化程序设计的特征是什么?结构化程序设计的特征如下程序模块只有一个入口和一个出口、程序中只包含依次、条件和循环三种限制结构
3.简述结构化分析的主要步骤答
(1)依据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(图),实体关系图
(2)以初始数据流程图为基础,从数据流程图的输出端起先回溯在对数据流程图进行回溯的过程中可能会发觉丢失的处理和数据,应将数据流程图补充完善
(3)对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析
(4)系统分析人员与用户一起对需求分析的结果进行复查
(5)依据细化的需求修订开发安排
(6)编写需求规格说明书和初始的用户手册,测试人员起先编写功能测试用的测试数据
8.什么是软件危机?软件危机表现在哪几个方面?
(1)软件危机是指在计算机软件的开发和维护过程中,所遇到的一系列严峻问题
(2)典型表现开发费用和进度难以估算和限制,大大超过预期的资金和规定日期;软件需求分析不够充分,用户不满足〃已经完成〃的软件系统软件质量难于保证;软件维护困难;通常没有保留适当的文档资料开发成本逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用快速普及深化的趋势.软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析功能需求和非功能需求的区分?答
(1)功能需求定义了软件开发人员必需实现的软件功能用户从他们完成任务的角度对软件提出了用户需求,这些需求通常是凌乱的、非系统化的、有冗余的,开发人员不能据此编写程序软件分析人员要充分理解用户需求将用户需求整理成软件功能需求开发人员依据功能需求进行软件设计和编码
(2)非功能需求是对功能需求的补充,可以分两类一类对用户来说是最重要的属性,包括有效性、高效性、敏捷性、完整性、互操作性、牢靠性、健壮性、可用性另一类对开发者来说是很重要的质量属性,包括可维护性、可移植性、可重用性、可测试性.什么是软件?如何评价软件的质量?答
(1)软件是程序以及开发、运用和维护程序所需的全部文档
(2)软件质量从可维护性、牢靠性、可理解性和效率等方面对软件作较全面的评价.为了提高软件的可维护性,在软件开发过程的各个阶段要充分考虑软件的可维护性因素答
(1)在需求分析阶段应当明确维护的范围和责任,检查每条需求,分析维护时这条需求可能须要的支持,对于那些可能发生改变的需求要考虑系统的应变实力
(2)在设计阶段应当做一些表更试验,检查系统的可维护性、敏捷性和可移植性,设计时应当将今后可能变更的内容与其他部分分别出来,并且遵循高内聚、低耦合的原则
(3)编码阶段要保持源程序与文档的一样性、源程序的可理解性和规范性
(4)在测试阶段测试人员应当依据需求文档和设计文档测试软件的有效性和可用性,收集出错信息并进行分类统计,为今后的维护打下基础答判断覆盖标准为,丕仅使亲语句都至少执行一次,还要是〃程序中每个分支都至少执行一次也就是说,设计的测试用例〃使每个判定都有一次取“直”和“假”的机会〃a°测试用例丕唯一a=161=0b=llc=16;a=5t=0b=10c=15^10b10t
320015303、读懂下面的程序,调整格式,使其更简洁理解,并添加注释0a
[10];i=010[i];
[0]
[1];j=0100a[j][j];«a[j][j];〃;〃〃;〃\n〃;0;
5、一个程序片段如下,请设计符合判定覆盖的测试用例a=5b0{05cl“c不在计算区域\n”“Wc;答案条件a=5b0a=5b«0cllc5符合判定覆盖的测试用例不唯一514;550;
4.设计下列伪程序的语句覆盖测试用例A510B1020015300答因为每个判定表达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共须要两组测试数据,以便使得每个判定表达式取值为真或假各一次下面是实现语句覆盖的典型测试用例1使3个判定表达式之值全为假输入111预期的输出1232使3个判定表达式之值全为真输入204060预期的输出1020300A0B0OADB0答条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次本程序中共有两个判定表达式,每个判定表达式中有两个简洁条件,因此,总共有8种可能的条件组合,它们是:A00A0=0A=00A=0=0CxBC»C«BCo下面的4个测试用例,可以使上面列出的8种条件组合每种至少出现一次实现15两种条件组合输入1120预期的输出22(1分)实现26两种条件组合输入1021预期的输出21(1分)实现37两种条件组合输入0110预期的输出11(1分)实现48两种条件组合输入0011预期的输出0(1分)0yD020x答案条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次本程序中共有两个判定表达式,每个判定表达式中有两个简洁条件,因此,总共有8种可能的条件组合,它们是yh0ylz0yv=l0y=1z0212x1y21y2x1条件组合覆盖设计测试用例实现16两种条件组合输入204;实现25两种条件组合输入211;实现38两种条件组合输入102;实现47两种条件组合输入
111.系统名称作者处理编号日期输入参数说明输出参数说明处理说明局部数据元素备注。