软件工程导论习题1

合集下载

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。

解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。

软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。

代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。

解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。

它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。

在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。

解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。

它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。

敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。

解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。

其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。

通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。

希望本文对读者有所帮助,谢谢阅读。

软件工程导论复习题含答案

软件工程导论复习题含答案

软件工程导论复习题含答案软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是(a)。

a.软件日益巨大b.开发方法不当c.开发人员编写程序能力差d.没保护不好软件2.软件就是一种(b)性工业产品。

a.理论b.科学知识(或逻辑)c.消耗d.体力3.需求分析是在(b)进行的。

a.用户b.用户和分析设计人员之间c.开发人员内部4.软件的主要结构和功能就是在(a)阶段同意的。

a.分析设计b.编程c.测试d.维护5.软件就是计算机系统中与硬件相互依存的另一部分,它的组成部分就是(d)。

d.使用和维护人员间a.程序、数据b.程序、文档c.程序d.程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是(a)a.管理水平b.个人程序技术c.小组技术水平d.硬件的发展7.在软件开发模型中,提出最早、应用最广泛的模型是(a)。

a.瀑布模型b.喷泉模型c.增量模型d.螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与(c)三个阶段,而每一阶段又可分为若干更小的阶段。

a.详细设计b.可行性分析c.运转及保护d.测试与排错9.计算机辅助软件工程,简称(d)。

a.sab.sdc.scd.case10.软件危机是软件产业化过程中出现的一种现象,下述现象中:(c)是其主要表现。

①软件须要快速增长难以满足用户。

②软件开发成本提升。

③软件开发进度难以掌控。

④软件质量难于确保。

a.③和④b.③和④c.全部d.①、②和③11软件工程的发生主要就是由于(c)。

a.程序设计方法学的影响c.软件危机的出现b.其他工程科学影响d.计算机的发展12、软件生成周期模型有多种,下列选项中,(c)不是软件生存周期模型。

a.螺旋模型b.增量模型c.功能模型d.瀑布模型(二)简答题1.软件产品的特点是什么?2.软件生产的发展经历了哪几个时代?各有何特征?3.软件危机的概念、表现形式、产生原因、化解途径4.详述主要的软件生存期模型(或软件开发模型)。

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题详细答案第一章软件工程概论1.什么是软件危机?软件危机是指在运算机软件的开发和爱护过程中所遇到的一系列严峻咨询题。

这些咨询题表现在以下几个方面:(1)用户对开发出的软件专门难中意。

(2)软件产品的质量往往靠不住。

(3)一样软件专门难爱护。

(4)软件生产效率专门低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估量。

(7)软件技术的进展远远满足不了运算机应用的普及与深入的需要。

2.什么缘故会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正明白得软件产品是一个完整的配置组成。

造成开发中制定打算盲目、编程草率,不考虑爱护工作的必要性。

(2) 软件本身方面,关于运算机系统来讲,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件爱护困难。

(3) 专门是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估量、爱护困难等一系列咨询题更为突出,技术的进展差不多远远不能适应社会需求。

3.如何样克服软件危机?(1) 充分吸取和借鉴人类长期以来从事各种工程项目中积存的行之有效的有效原理、概念、技术与方法,专门是吸取几十年来人类从事运算机硬件研究和开发的体会教训。

在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在运算机系统早期进展时期形成的一些错误概念和作法。

(3) 按照不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个时期使用的软件工具集合成一个整体,形成一个专门好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、爱护到剔除的全过程。

《软件工程导论》试题及答案

《软件工程导论》试题及答案

《软件工程导论》试题及答案软件工程导论试题及答案一、选择题1. 软件工程是一门多学科交叉的学科,其中包括以下哪些学科?A. 计算机科学B. 电子工程C. 数学D. 管理学E. 心理学答案:A、B、C、D2. 软件工程的目标是什么?A. 提高软件开发效率B. 提高软件质量C. 提高软件可靠性D. 提高软件维护性E. 提高软件安全性答案:A、B、C、D、E3. 软件过程模型是指软件开发过程中的一种抽象表示方法,常用的软件过程模型有哪些?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型E. 喷泉模型答案:A、B、C、D4. 以下哪个开发方式可以在软件开发过程中提供更多的灵活性和快速反馈?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型答案:D5. 软件需求分析的主要任务是什么?A. 确定软件的功能和性能需求B. 定义软件系统的架构C. 设计软件的用户界面D. 实施软件测试答案:A二、填空题1. 软件工程的核心目标是提高软件的 ______ 和 ______ 。

答案:质量、可靠性2. 软件工程中的四个基本活动是需求分析、设计、 ______ 和______ 。

答案:实现、维护3. 瀑布模型的五个阶段依次是:需求分析、设计、编码、 ______ 和 ______ 。

答案:测试、维护4. “快速原型”开发模型注重 ______ 。

答案:用户参与5. 敏捷开发模型的核心原则是 ______ 。

答案:迭代开发三、简答题1. 请简要说明为什么软件工程是一门多学科交叉的学科?答:软件工程在开发软件的过程中需要结合计算机科学的知识来实现软件的功能,同时也需要借鉴电子工程的设计思想来构建软件系统的架构。

此外,软件工程还应用了数学方法来进行软件需求分析和软件质量保证,同时也需要管理学的知识来进行项目管理和团队协作。

2. 请简述螺旋模型在软件开发过程中的应用场景。

答:螺旋模型适用于大型复杂项目或对安全性要求较高的项目。

软件工程导论第1-2套试题及答案

软件工程导论第1-2套试题及答案

软件工程导论第1-2套试题及答案软件工程A卷一、判断题:每小题1分,共15分,在正确的打上√,错误的打上×1.软件工程学只有理论意义,没有实际用途。

()2.软件工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。

()3.可行性研究进一步研究问题分析阶段所确定的问题是否有可行的解。

()4.代码审查方法没有计算机测试方法好。

()5.验证软件需求的方法主要靠人工审查的方法。

()6.并发系统中遇到的一个主要问题是定时问题。

()7.编码风格由个人喜好决定,没有固定格式。

()8.面向对象建模得到的模型包含系统的3个要素,即静态结构、交互次序和数据变换。

()9.软件重用是提高软件开发生产率和目标系统质量的重要途径。

()10.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。

()11.Power Designer是一个CASE工具。

()12.软件是指用程序设计语言(如Pascal,C,Visual Basic等)编写的程序,软件开发实际上就是编写程序代码。

()13.在进行需求分析时需同时考虑维护问题。

()14.UML是一种面向对象的分析设计方法,即OOA/OOD方法。

()15.在面向对象的软件开发方法中,每个类都存在其相应的对象,对象是类的实例,类是生成对象的模板。

()二、单选题:每题1分,共15分1、软件危机主要体现在()A、软件成本太高B、开发周期长C、软件产品的质量难以控制D、软件规模过大2、为了解决软件危机,人们提出了用()的原理来设计软件。

A、运筹学B、工程学C、软件学D、数学3、瀑布模型的关键不足在于()A、过于简单B、不能适应需求的动态变更C、过于灵活D、各个阶段需要进行评审4、软件使不同的系统约束条件和用户需求得到满足的容易程度称为软件的()A、兼容性B、可靠性C、坚固性D、可用性5、软件质量(可维护性、可理解性、可靠性)很大程度取决于()A、程序员的变成水平B、模块分解的合理C、程序运行效率D、有完整的故障处理E、算法的合理性6、软件可行性研究一般不考虑()A、是否有足够的人员和相关的技术来支持系统开发B、是否有足够的工具和相关的技术来支持系统开发C、待开发软件是否有市场、经济上是否合算D、待开发的软件是否会有质量问题7、SA法中,有一个处理过程逻辑不易用语言表达清楚,最好是用()来描述A、流程图B、判定表C、NS图D、问题分析图PAD8、下列需求陈述中有效需求是()A、目标软件应有C++实现B、软件系统必须在5秒内响应并处理外部事件C、目标软件必须有系统设置模块D、当软件和用户交互时,必须能使用满足MS风格的界面9、在面向对象软件开发方法中,类与类之间主要有以下结构关系()A、继承和聚集B、继承和一般C、聚集和消息传递D、继承和方法调用10、面向对象模型主要由以下哪些模型组成()A、对象模型、动态模型、功能模型B、对象模型、数据模型、功能模型C、数据模型、动态模型、功能模型D、对象模型、动态模型、数据模型11、OOA中应首先识别()A、对象B、类C、对象的属性D、对象所属的类12、概要设计的结果是提供一份()A、模块说明书B、框图C、程序D、系统结构图13、以下语言中属于4GL是()A、PBB、VBC、UMLD、SQL Server 2000中的SQL语言14、与设计测试数据无关的文档是()A、需求分析说明书B、概要设计说明书C、源程序D、项目开发计划15、软件测试中的测试实例主要由输入数据和()组成A、测试规则B、测试计划C、预期输出结果D、以往测试记录分析三、简答题(共20分)1.项目A是为银行开发ATM(自动取款机)软件,项目B是为网络公司开发网络数据流分析软件,请问按照面向数据流设计方法(SD法),两个项目应分别采用何种方法将需求分析的功能模型转换成软件结构,为什么?(6分)2.某保险公司对投保人的汽车保费计算方法如下:单身男,年龄30岁以下(含30岁),计保费标准A,30岁以上计保费标准B;已婚男30岁以下(含30岁),计保费标准C,30岁以上计保费标准D,单身女,年龄25岁以下(含25岁),计保费标准E,25岁以上计保费标准F;已婚女25岁以下(含25岁),计保费标准G,25岁以上计保费标准H,请画出对应的判定树。

《软件工程导论》课后习题答案

《软件工程导论》课后习题答案
假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。
*
作业及解答(第1-2章)
05
03
01
在1985年对计算机存储容量的需求,估计是
如果字长为16位,则这个存储器的价格是
如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。
*
作业及解答(第3章)
*
作业及解答(第3章)
3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:
*
作业及解答(第1-2章)
在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?
假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
如果字长为32位,则这个存储器的价格是:
在1995年对存储容量的需求估计为:
在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需要的工作量为

软件工程导论1-6章习题

软件工程导论1-6章习题

第一章练习题一、判断题1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。

(√)2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。

(X)3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。

(X)4.快速原型模型可以有效地适应用户需求的动态变化。

(√)5.类是关于对象性质的描述,由方法和数据组成。

(√)6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。

(√)二、名字解释:1.软件:完成特定功能的程序+数据结构+文档。

2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。

3.软件工程:将系统化的、规范的、可度量的方法应用与软件的开发、运行和维护的过程。

(将工程化运用于软件中)。

4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时期。

5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。

它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。

它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。

7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。

增量方式包括增量开发和增量提交。

增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件;增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。

增量开发和增量提交可以同时使用,也可以单独使用。

9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。

软件工程导论试题

软件工程导论试题

一、单项选择题(每小题3分,共10题)1、需求分析的任务不包括(B)。

A.问题分析B.系统设计C.需求描述D.需求评审。

2、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。

A.判定表和判定树B.盒图C.流程图D.关系图3、为适应软件运行环境的变化而修改软件的活动称为(B)。

A.纠错性维护B.适应性维护C.改善性维护D.预防性维护4、下列不属于软件工程方法3要素的是(D)。

A)方法B)工具C)过程D)人员5、软件的发展经历了(D)个发展阶段。

A.一B.二C.三D.四6、下列不属于UML中的动态图的是(B)。

A)状态图B)对象图C)协作图D)活动图7、一个模块的(B)是指能直接调用(控制)该模块的模块数。

A.扇出数B.扇入数C.宽度D.深度8、下列耦合中,模块独立性最好的是(A)。

A)非直接耦合B)数据耦合C)外部耦合D)内容耦合9、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。

除第1级外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干(A)。

A 关键实践B 软件过程性能C 软件过程能力D 软件过程10、UML的扩展机制不包括(C)。

A)构造型B)标记值C)注解D)约束二、填空题(每题2分,共5题)1、任何复杂的程序流程图都只应该由5种基本控制结构组合或嵌套而成,这5中基本结构分别是顺序型、选择型、先判定型循环、后判定型循环、多情况型选择。

2、在进行结构化分析时,对数据流图进行分层应注意父图和子图平衡。

3、UML的基本构造块包含:视图、图和模型元素。

4、自行车类与自行车车轮类之间是聚集关系。

5、在进行软件规模估算时,与代码行度量方式相比,功能点度量的估算结果更客观和合理。

三、判断题(每题2分,共10题)1、目前,软件项目的进度安排比较常用的方法包括程序评估与审查技术(PERT)和关键路径法(CPM)。

(对)2、缺乏处理大型软件项目的经验。

软件工程导论_习题及答案

软件工程导论_习题及答案

软件⼯程导论_习题及答案第⼀章软件⼯程概论1.什么是软件⽣存周期?软件⽣存周期是指从软件定义、开发、使⽤、维护到淘汰的全过程。

2.软件⽣存周期为什么划分成阶段?(1) 任何⼀个阶段的具体任务不仅独⽴,⽽且简单,便于不同⼈员分⼯协作,从⽽降低整个软件开发⼯作的困难程度。

(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于⼯程的组织管理,也便于采⽤良好的技术⽅法。

(3) 使软件开发的全过程以⼀种有条不紊的⽅式进⾏,保证软件的质量,特别是提⾼了软件的可维护性。

3.应该怎样来划分阶段?(1)每⼀个阶段的任务尽可能独⽴;(2)同⼀阶段内的任务性质尽可能相同;(3)每⼀个阶段任务的开始和结束有严格的标准。

4.软件开发模型有⼏种?它们的开发⽅法有可特点?软件开发模型有瀑布型、渐增型和变换型。

瀑布型开发⽅法是按照软件⽣存周期的划分依次实施,每⼀个阶段有明确规定的任务。

它的特点:(1)各个阶段的顺序性和依赖性;(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;(3)每个阶段必须完成规定的⽂档,对其中问题通过复审及早发现,及早解决。

渐增型开发⽅法及特点:(1) 从部分需求出发,先建⽴⼀个不完全的系统,通过测试运⾏该系统取得经验和信息反馈,加深对软件需求的理解,进⼀步使系统扩充和完善。

如此反复,直⾄软件⼈员和⽤户对所设计完成的软件系统满意为⽌。

(2) 在渐增型开发下的软件是随软件开发的过程⽽逐渐形成的。

(3) 渐增型开发⽅法适合于知识型软件的开发,设计系统时对⽤户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。

多数研究性质的试验软件,⼀般采⽤此⽅法。

变换型开发⽅法及特点:(1)从软件需求的形式化规格说明出发,经过⼀系列的程序变换,得到最终的程序系统。

(2)该⽅法必须有严格的数学理论和形式化技术的⽀持。

5.什么是软件⼯程?软件⼯程是指导计算机软件开发和维护的⼯程学科。

软件工程导论复习题含答案

软件工程导论复习题含答案

软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是( A )。

A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2. 软件是一种( B )性工业产品。

A. 理论B. 知识(或逻辑)C. 消耗D. 体力3. 需求分析是在( B )进行的。

A. 用户B. 用户和分析设计人员之间C. 开发人员内部D. 使用和维护人员间4. 软件的主要结构和功能是在( A )阶段决定的。

A. 分析设计B. 编程C. 测试D. 维护5.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。

A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展7. 在软件开发模型中,提出最早、应用最广泛的模型是( A )。

A. 瀑布模型B. 喷泉模型C. 增量模型D. 螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与( C )三个阶段,而每一阶段又可分为若干更小的阶段。

A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错9. 计算机辅助软件工程,简称( D )。

A. SAB. SDC. SCD. CASE10. 软件危机是软件产业化过程中出现的一种现象,下述现象中:( C )是其主要表现。

①软件需要增长难以满足。

②软件开发成本提高。

③软件开发进度难以控制。

④软件质量不易保证。

A. ③和④B. ③和④C. 全部D. ①、②和③11 软件工程的出现主要是由于( C )。

A. 程序设计方法学的影响B. 其他工程科学影响C. 软件危机的出现D. 计算机的发展12、软件生成周期模型有多种,下列选项中,( C )不是软件生存周期模型。

A.螺旋模型B.增量模型C.功能模型D.瀑布模型(二)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机的概念、表现形式、产生原因、解决途径4. 简述主要的软件生存期模型(或软件开发模型)。

软件工程导论习题答案

软件工程导论习题答案

2.需求分析的基本任务是什么?
准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?
建立目标系统的逻辑模型的过程也就是数据流图的分解过程。它的导出过程如图:
Hale Waihona Puke 4.什么是结构化分析?它的结构化体现在哪里?
结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
4.构成软件项目的最终产品:
应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?
(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
5.软件需求规格说明书由哪些部分组成?
组成包括:
(1) 引言:编写目的、背景说明、术语定义及参考资料等。
(2) 概述主要功能、约束条件或特殊需求。
(3) 数据流图与数据字典。
(4) 用户接口、硬件接口及软件接口。

软件工程导论习题及答案

软件工程导论习题及答案

一.选择题1。

软件需求分析阶段的工作,可以分为4个方面:需求获取,需求分析,编写需求规格说明书以及(B)A).用户B).需求审评C).总结D).都不正确2。

在原型法中称(A)为用户/设计者,开发人员根据用户需求不断修改原型,直到满足用户要求为止。

A).用户B).开发人员C).系统分析员D).程序员3。

下面不属于软件工程的3个要素是(D)A).工具B).过程C).方法D).环境4检查软件产品是否符合需求定义的过程称为(A)A).确认测试B).集成测试C).验证测试D).验收测试5.数据存储和数据流都是(D),仅仅是所处的状态不同。

A).分析结果B).事件C).动作D).数据6。

数据流图和(C)共同组成系统的逻辑模型。

A).HIPO图B).PD)LC).数据字典D).层次图7。

数据元素组成数据的方式的基本类型(D)A).顺序B).选择C).循环D).以上全部8。

数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。

下列图符名标识的图符不属于数据流图合法图符的是(A)。

A).控制流B).加工C).数据存储D).源和潭9。

结构化分析方法就是面向(B)的自顶向下逐步求精进行需求分析的方法。

A).目标B).数据流C).功能D).对象10。

通过(B)可以完成数据流图的细化。

A).结构分解B).功能分解C).数据分解D).系统分解11。

下面不属于软件工程原则的是(C)A).抽象B).模块化C).自底向上D).信息隐蔽12。

(D)是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可以通过名字来访问。

A).模块化B).抽象C).精化D).模块13。

(C)是指让一些关系密切的软件元素在物理上彼此靠近。

A).信息隐蔽B).内聚C).局部化D).模块独立14。

面向数据流的设计方法把(D)映射成软件结构。

A).数据流B).系统结构C).控制结构D).信息流15。

程序流程图(PDF)中的箭头代表的是(B)。

软件工程导论(第六版)部分课后习题答案

软件工程导论(第六版)部分课后习题答案

第一章1—1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.1—3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科.1—4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。

优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度.缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用.1—6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1—7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型.瀑布模型的优点:1。

可强迫开发人员采用规范的方法;2。

严格规定了每个阶段必须提交的文档;3。

要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2。

需求确定后,经过一段时间才得到软件最初版本;3。

完全依赖规格说明,导致不能满足用户需求。

适用中小型项目。

快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。

《软件工程导论》试题与答案

《软件工程导论》试题与答案

《软件工程导论》试题与答案一、选择题(每题2分,共20分)1. 以下哪个不属于软件工程的三个基本活动?A. 软件规格说明B. 软件设计和实现C. 软件测试和验证D. 软件维护答案:D2. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程答案:A3. 软件开发过程中,以下哪个阶段的主要任务是需求分析?A. 需求获取B. 设计C. 编码D. 测试答案:A4. 在软件工程中,以下哪个方法主要用于软件项目管理?A. 水平迭代法B. 垂直迭代法C. 敏捷开发D. 模块化设计答案:C5. 以下哪个工具用于软件需求跟踪?A. 用例图B. 类图C. 时序图D. 状态图答案:A二、填空题(每题2分,共20分)6. 软件工程的基本目标是提高软件的______和降低软件的______。

答案:可维护性,成本7. 软件开发过程主要包括______、______、______、______四个阶段。

答案:需求分析、设计、编码、测试8. 软件设计中,常用的设计模式有______、______、______等。

答案:工厂方法、单例、策略9. 软件测试的目的是______、______和______。

答案:发现错误、验证软件功能、评估软件质量10. 敏捷开发的核心价值观包括______、______、______、______、______。

答案:个体和团队、可工作的软件、客户合作、响应变化、简单性三、判断题(每题2分,共20分)11. 软件工程是计算机科学与工程的一个分支,主要研究软件开发的理论、方法和技术。

(对/错)答案:对12. 软件开发过程中,需求分析阶段的主要任务是获取用户需求。

(对/错)答案:对13. 软件测试的目的是证明软件的正确性。

(对/错)答案:错14. 敏捷开发强调快速迭代、持续交付和客户反馈。

(对/错)答案:对15. 软件工程的基本活动包括软件规格说明、软件设计和实现、软件测试和验证。

软件工程导论第六版课后习题答案

软件工程导论第六版课后习题答案

软件工程导论第六版课后习题答案第一章课后习题答案习题1.1答案:软件工程是使用工程化思维和方法来开发、维护和管理软件的一门学科。

它涵盖了软件开发的全过程,包括需求分析、设计、编码、测试、维护等各个阶段,以及与软件开发相关的项目管理、质量保证等方面。

习题1.2答案:软件是由计算机程序和相关文档组成的,而计算机程序是一组指令的集合,用来描述计算机在某种语言中执行的操作。

因此,软件和计算机程序是密切相关的,但并不完全等同。

软件是包含程序和相关文档的更广泛的概念,它包括了程序的编写、测试、维护等全过程。

习题1.3答案:软件工程的目标是提高软件的质量、可靠性、可维护性和可重用性。

通过使用工程化的方法和技术,软件工程可以使软件开发过程更加系统化、规范化,从而提高软件开发的效率和质量。

软件工程还关注与软件开发相关的项目管理和质量保证等方面,以确保软件能够按时、按预算、按要求的开发和交付。

习题1.4答案:软件工程的主要内容包括需求分析、软件设计、软件编码、软件测试和软件维护等方面。

需求分析是确定软件的功能和性能需求,为后续的设计和编码工作提供基础。

软件设计是根据需求分析的结果,制定软件系统的结构和组织方式,以便于后续的编码和测试。

软件编码是实现软件设计的过程,将设计的概念转化为具体的程序代码。

软件测试是验证软件的正确性和完整性的过程,通过各种测试方法和工具,发现并纠正软件中的错误。

软件维护是对软件进行更新、修复、优化等操作,以确保软件能够长期稳定地运行。

习题1.5答案:软件工程的活动包括项目管理、需求管理、设计管理、配置管理、质量管理等方面。

项目管理是对软件开发项目进行计划、组织和控制的活动,包括项目目标的设定、进度的控制、资源的分配等。

需求管理是对软件需求进行跟踪、分析和管理的活动,包括需求变更的管理、需求优先级的确定等。

设计管理是对软件设计进行管理和控制的活动,包括设计文档的编写、设计评审的组织等。

配置管理是对软件配置进行管理的活动,包括配置项的标识、配置变更的控制等。

软件工程导论(第六版)课后习题答案

软件工程导论(第六版)课后习题答案

软件工程导论(第六版)课后习题答案软件工程导论(第六版)课后习题答案1. 简答题1.1 软件是如何演变而来的?软件起源于计算机的发展。

最初,计算机只能执行硬件内置的指令,而随着计算机的发展,人们开始意识到可以编写程序来控制计算机的行为。

因此,软件就诞生了。

从最初的汇编语言、机器语言编写程序,到高级编程语言的出现,软件也逐渐从简单的指令集合演变为复杂的程序系统。

同时,计算机应用领域的拓展也催生了更多类型的软件,如操作系统、数据库管理系统、图形界面等。

软件工程导论旨在帮助人们理解和应对软件开发过程中的种种问题和挑战。

1.2 简述软件危机的原因以及软件工程的解决途径。

软件危机指的是在软件开发过程中出现的一系列问题和挑战。

其原因主要包括:(1)软件开发过程中需求不明确或者需求频繁变更;(2)软件项目规模庞大,组织和管理困难;(3)软件开发中缺乏标准化的工程方法和规范;(4)软件开发中技术不成熟、人员培训和素质不足等。

为了应对软件危机,软件工程提出了一系列解决途径:(1)引入系统化的软件开发过程,如瀑布模型、迭代模型、敏捷开发等;(2)规范化软件开发活动,如需求分析、软件设计、编码、测试、维护等;(3)建立软件开发的标准和规范,如ISO 9000、CMMI等;(4)提高软件开发人员的专业水平,加强软件工程教育和培训。

1.3 软件工程活动的核心内容是什么?软件工程活动的核心内容包括需求分析、软件设计、编码、测试和维护等。

(1)需求分析:确定用户需求,定义软件的功能和性能要求。

(2)软件设计:制定软件的体系结构,并将需求转化为具体的设计方案。

(3)编码:根据设计方案,使用编程语言实现软件的功能。

(4)测试:验证软件是否符合需求和设计的要求,发现并修复潜在的问题。

(5)维护:对软件进行改进、优化和修复,确保软件长期稳定运行。

2. 应用题2.1 简述软件生命周期模型,并列举至少两种常见的软件生命周期模型。

软件生命周期模型指的是软件开发过程中各个阶段的组织和安排方式,常见的软件生命周期模型包括:(1)瀑布模型:按照固定的顺序依次进行需求分析、设计、编码、测试和维护等活动。

2020智慧树,知到《软件工程导论》章节测试完整答案

2020智慧树,知到《软件工程导论》章节测试完整答案

2020智慧树,知到《软件工程导论》章节测试完整答案第一章单元测试1、多选题:软件的主要特性是( )。

选项:A:高成本B:可独立构成计算机系统C:无形性D:包括程序和文档答案: 【高成本;无形性;包括程序和文档】2、单选题:包含风险分析的软件工程模型是( )。

选项:A:螺旋模型B:增量模型C:瀑布模型D:喷泉模型答案: 【螺旋模型】3、多选题:下列属于面向对象开发方法的是( )。

选项:A:OMTB:CoadC:BoochD:UML答案: 【OMT;Coad;Booch;UML】4、多选题:软件危机的主要表现是( )。

选项:A:软件产品的质量低劣B:软件成本太高C:软件开发人员明显不足D:软件生产率低下答案: 【软件产品的质量低劣;软件生产率低下】5、单选题:从事物的组成部件及每个部件的属性、功能来认识事物。

这种方法被称为( )的方法。

选项:A:面向数据B:面向过程C:面向对象D:面向属性答案: 【面向对象】面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的( )结构。

选项:A:数据B:程序C:逻辑D:物理答案: 【程序】7、判断题:增量模型是非整体开发的模型,软件的开发是用增量开发和增量提交。

( )选项:A:错B:对答案: 【对】8、判断题:统一迭代过程在不同阶段,各个核心工作流的工作重心相同。

( ) 选项:A:对B:错答案: 【错】喷泉模型是一种面向对象模型。

( )选项:A:错B:对答案: 【对】10、判断题:螺旋模型不适用于大型内部软件开发。

( )选项:A:错B:对答案: 【错】第二章单元测试1、单选题:面向对象的分析方法主要是建立三类模型,即( )。

选项:A:对象模型、动态模型、应用模型B:ER模型、对象模型、功能模型C:对象模型、动态模型、功能模型D:系统模型、ER模型、应用模型答案: 【对象模型、动态模型、功能模型】2、单选题:SA法的主要描述手段有( )。

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题详细答案

数字零=0 3位数字=3{数字}3 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9] 6. 可行性研究报告的主要内容? 可行性分析的结果是可行性研究报告,内容包括:(1) 系统概述:说明开发的系统名称,提出单位 和开发单位。 (2) 可行性研究的前提:系统目标; 要求; 约束和限制; 可行性研究的基本准则等。 (3) 对 现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。 (4) 系统 需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5) 建议系统:系统目标;处理 流程;系统结构,功能,性能;系统技术可行性;投资和效益分析;操作可行性;法律可行性。(6) 其它可 选方案:与国内外同类型方案的比较; 提出一两个可行性方案供论证和探讨。 (7) 制定下一阶段的预算。 (8) 结论性意见:由用户方、设计方和投资方共同签署意见。 第三章 需求分析 习题答案 //3至3个数字
M 4080e 0.28(19851960) 4080e 7 4,474,263(字)
P 0.048 0.7219851974 4474263
5, 789(美元)
(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10×20条指 令。 为了开发出4474263条指令以装满存储器,需要的工作量是:
M 4080e 0.28(19951960)
73,577,679(字)
如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。
7,127(美元)

软件工程导论课后习题部分答案

软件工程导论课后习题部分答案

第一章1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。

1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。

优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。

1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。

适用中小型项目。

快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程导论习题软件生命周期每个阶段的基本任务:1问题定义2可行性研究3需求分析4总体设计5详细设计6编码和单元测试7综合测试8软件维护2.软件过程生命周期模型分几个模型?瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型。

3.数据流图的定义;是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

4.数据字典由四类元素的定义组成;(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理。

5数据模型中包含3种相互关联的信息:数据对象,数据对象的属性及数据对象彼此间相互连接的关系6.模块独立的概念是模块化,抽象。

信息隐蔽和局部化概念的直接结果。

开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块立7.模块独立性重要有两条理由:第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。

第二,独立的模块比较容易测试和维护。

8.模块的独立程度的标准是内聚和耦合9.耦合和内聚哪个最高最低,哪个最强最弱?功能内聚是最高程度的内聚,耦合程度最低,高程度的耦合是内容耦合,最弱的是非直接耦合。

10.启发式规则:1改进软件结构提高模块独立性,2模块规模应该适中3深度,宽度,扇出和扇入都应该适当4模块的作用域应该在控制域之内5力争降低模块接口的复杂程度6设计单入口单出口的模块7模块功能应该可以预测11.人机界面设计的4个设计问题:1系统响应时间2用户帮助设施3出错信息处理4命令交互12.软件系统的测试过程的几个步骤:1模块测试2子系统测试3系统测试4验收测试5平行运行13.测试重点从5个方面对模块进行测试:1模块接口2局部数据结构3重要的执行通路4出错处理通路5边界条件。

14.非渐增式测试一下子把所有的模块放在一起,并把庞大的程序作为一个整体来测试,测试者面对的情况十分复杂。

渐增式测试与“一步到位”的非渐增式测试相反,它把程序划分成小段来构造和测试,在这个过程中容易定位和改正错误,对接口可以进行更彻底的测试。

15.白盒测试技术中逻辑覆盖分那些等级?1语句覆盖2判定覆盖3条件覆盖4判定/条件覆盖5条件组合覆盖6点覆盖7边覆盖8路径覆盖16.黑盒测试技术几种?1等价划分2边界值分析3错误推测17.软件再工程过程?1库存目录分析2文档重构3逆向工程4代码重构5数据重构6正向工程18.软件成分的重用级别:(1)代码重用(2)设计结果重用(3)分析结果重用大题1.为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性?迭代是软件开发过程中普遍存在的一种内在属性。

一般来说,使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。

由于在整个开发过程中都使用统一的的软件概念“对象”,所有其他概念都是围绕对象组成的,目的是保证分析工作中得到的信息不会丢失或改变,因此,对生命周期各阶段的区分就不重要了、不明显了。

由于各阶段都使用统一的概念和表示符号,因此,整个开发过程都是吻合一致的,或者说是“无缝”连接的,这自然就很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化。

2.在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

可行性研究实质上是要进行一次大大地压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

应该从3个方面研究,一技术可行性使用现在的技术能实现这个系统吗?二经济可行性这个系统的经济效益能超过它的开发成本吗?三操作可行性系统的操作方式在这个用户组织内行得通吗?必要时还要从法律、社会效益等更广泛的方面研究。

步骤:1复查系统规模和目标2研究目前正在使用的系统3导出新系统的高层逻辑模型4进一步定义问题5导出和评价选择的解法6推荐行动方针7草拟开发计划8书写文档提交审查3.为什么要进行需求分析?通常对软件系统又哪些要求?需求分析的任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

在需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确的描述软件需求。

只有用户知道自己最需要什么,但是他们并不知道怎样用软件实现自己的需求,用户必须把他们对软件的需求尽量准确、具体的描述出来。

分析员知道怎样用软件实现人们的需求,但是在需求分析开始时他们对用户的需求并不十分清楚,必须通过与用户的沟通获取用户对软件的需求。

需求分析和规格说明是一项十分艰巨复杂的工作。

1功能要求:指定系统必须提供的服务2性能要求:指定系统必须满足的定时约束或容量约束,通常包括速度、信息量速率、主存容量、磁盘容量、安全性等方面的需求3可靠性和可用性需求:可靠性需求定量地指定系统的可靠性,可用性和可靠性密切相关,它量化了用户可以使用系统的程度4出错处理需求;当应用系统发现它自己犯了一个错误时所采取的行动5接口需求:描述应用系统与它的环境通信的格式6约束:设计约束或实现约束描述在设计或实现应用系统是应遵守的限制条件7逆向需求:说明软件系统不应该做什么8将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发的范畴,但是据分析将来很可能会提出来的要求4.等价划分是怎样划分的?哪些是有效等价类和无效等价类?等价划分是一种黑盒测试技术,这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。

(1)如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值或大于最大值)。

(2)如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类。

(3)如果规定了输入数据的一组值,而且程序对不同输入值做不同的处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(任一个不允许的输入值)。

(4)如果规定了输入数据必须遵循的规则,则可以划分出一个有效地等价类(符合规则)和若干个无效的等价类(从各种不同的角度违反规则)(5)如果规定了输入数据为整型,则可以划分出正整数、零和负数等3个有效类。

(6)如果程序的处理对象是表格,则应该使用空表,以及含一项或多项的表有效输入的等价类(1)1~6个数字字符组成的数字串(最高位数字不是零)(2)最高位数字是零的数字串(3)最高位数字左邻是负号的数字串无效的等价类(1)空字符串(全是空格)(2)左部填充的字符既不是零也不是空格(3)最高位数字右面由数字和空格混合而成(4)最高位数字右面由数字和其他字符混合而成(5)负号和最高位数字之间又空格5.软件的可维护性与哪些因素有关?在软件开发过程中应该采取哪些措施来提高软件产品的可维护性?1可理解性:表现为外来读者理解软件的结构、功能、接口和内部处理过程的难易程度。

2可测试性:诊断和测试的容易程度取决于软件容易理解的程度3可修改性:软件容易修改的程度和设计原理和启发规则则直接有关。

4可移植性:把程序从一种计算环境(硬件配置和操作系统)转移到另一中计算环境的难易程度。

5可重用性:同一事物不做修改或稍加改动就再在不同环境中多次重复使用在每个阶段结束前的技术审查和管理复审中,应该着重对可维护性进行复审,在复审过程中,应该对将来要改进得部分和可能要改的部分加以注意指明,应该讨论软件的可移植性问题,考虑可能影响软件维护的系统界面。

在设计和编码过程中应该尽量使用可重用的软件构件,每个测试步骤都可以暗示在软件正式交付使用之前,程序中可能需要做预防性维护的部分。

,在完成了每项维护工作之后,都应该对软件维护本身仔细认真地复审。

6.面向对象设计应该遵循哪些规则?简述每条准则的内容,并说明遵循每条准则的必要性。

(1)模块化:面向对象软件开发模式,很自然地支持了把系统分解成模块的设计原理:对象就是模块。

它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。

(2)抽象:不仅支持过程抽象而且支持数据抽象,类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明,接口规定了外界可以使用的合法操作符,使用者通过操作符使用类中定义的数据,这类抽象称为规格说明抽象。

(3)信息隐蔽:信息隐蔽通过对象的封装性实现,类结构分离了接口和实现,从而支持了信息隐蔽。

(4)弱耦合:是一个软件结构内不同模块之间互连的紧密程度。

弱耦合是优秀设计的一个重要标准,这有助于使得系统中某一部分的变化对其他部分的影响家昂到最低程度。

两类耦合,一,交互耦合对象之间的耦合通过消息连接来实现,这就是交互耦合。

二,继承耦合,与交互耦合相反,一个提高继承耦合程度(5)强内聚:内聚衡量一个模块内各个元素彼此结合的紧密程度,也可以把内聚定义为设计使用的一个构件内的各个元素,对完成一个定义明确的目的所作出的贡献程度。

(6)可重用:软件重用是提高软件开发生产率和目标系统质量的重要途径。

7.叙述能力成熟度的5个等级的特点?1初始级:软件过程的特征是无序的,有时甚至混乱。

处于这个最低成熟度等级的软件机构,基本上没有健全的软件工程管理制度,其软件过程完全取决于项目组的人员配备,所以具有不可预测性。

人员变了过程也随之改变。

过程能力是不可预测的,软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测。

2可重复级:软件机构建立了基本的项目管理过程,可跟踪成本、进度、功能和质量。

软件机构针对所承担的软件项目建立了基本的软件管理控制制度,通过对以前项目的观察和分析,可以提出针对现行项目的约束条件。

软件机构的过程能力概括为,软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。

3已定义级:软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。

有一个固定的的过程小组从事软件过程活动,无论是管理活动还是工程活动都是稳定的,软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性。

4已管理级:软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量。

软件过程是可度量的,软件过程在可度量的范围内运行。

5优化级:软件机构集中精力持续不断地改进软件过程,是一个以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们。

软件过程是可优化的。

8.P138 9. P31710.成本效益分析的货币的时间价值、投资回收期、纯收入?n也就是p元钱在n年后的价值。

反之,如果n年后能收入F元钱,那么这些钱现在的价值是:P=F/(1+i)n修改库存清单系统两年以后可以节省4225.12元,比最初的投资5000元还少774.88元,第三年以后将在节省1779.45元。

相关文档
最新文档