软件工程简答题复习题
软件工程考试题及答案
软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的三要素不包括以下哪一项?A. 工具B. 方法C. 过程D. 环境答案:D2. 软件需求分析阶段的主要任务是确定软件的()。
A. 功能需求B. 性能需求C. 界面需求D. 所有选项答案:D3. 软件测试的目的是()。
A. 发现软件中的错误B. 证明软件是正确的C. 验证软件是否满足需求D. 所有选项答案:D4. 以下哪一项不是软件维护的类型?A. 纠错性维护B. 适应性维护C. 完善性维护D. 开发性维护答案:D5. 软件项目管理的主要目标是()。
A. 提高软件质量B. 控制成本C. 缩短开发周期D. 所有选项答案:D6. 瀑布模型的主要缺点是()。
A. 缺乏灵活性B. 难以适应需求变化C. 无法并行开发D. 所有选项答案:D7. 敏捷开发方法的核心理念是()。
A. 以文档为中心B. 以人为中心C. 以过程为中心D. 以工具为中心答案:B8. 软件配置管理的主要目的是()。
A. 确保软件的一致性B. 跟踪软件的变更C. 控制软件的版本D. 所有选项答案:D9. 以下哪一项不是软件工程的原则?A. 抽象B. 模块化C. 复用D. 随机性答案:D10. 软件工程的目标是()。
A. 开发高质量的软件B. 提高软件生产率C. 降低软件成本D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件需求分析阶段可能包括以下哪些活动?A. 需求收集B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD2. 软件测试的类型包括以下哪些?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD3. 软件维护的常见原因包括以下哪些?A. 适应环境变化B. 修正软件缺陷C. 提高软件性能D. 增加新功能答案:ABCD4. 软件项目管理的关键活动包括以下哪些?A. 项目规划B. 项目监控C. 项目沟通D. 风险管理答案:ABCD5. 软件工程中的常见开发模型包括以下哪些?A. 瀑布模型B. 螺旋模型C. 敏捷模型D. 增量模型答案:ABCD三、判断题(每题2分,共10分)1. 软件工程的目标是开发出零缺陷的软件。
(完整word版)软件工程简答题必考
1、什么是软件工程?它目标和内容是什么?软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科.软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高.软件工程内容:包括开发技术和开发管理两个方面。
2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发?软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。
其中喷泉模型、统一软件过程适用于面向对象的软件开发.3、什么是结构分析方法?该方法使用什么描述工具?结构化分析:简称SA,面向数据流进行数据分析的方法.采用自顶向下逐层分解的分析策略.顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑.4、什么是软件概要设计?该阶段的基本任务是什么?把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。
称为概要设计或结构设计。
基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审5、软件维护有哪些内容?(1)校正性维护。
在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.(2)适应性维护。
为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。
(3)完善性维护。
为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
(4)预防性维护。
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试.单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
软件工程常考简答题
绪论1、什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是以计算机科学理论及其他有关学科旳理论为指导,采用工程化旳概念、原理、技术和措施进行软件旳开发和维护,把通过时间证明是对旳旳管理措施和目前可以得到旳最佳旳技术、措施相结合,以期用较少旳代价获取高质量旳软件。
计算机科学侧重于理论研究,其成果可应用于软件工程,而软件工程则强调怎样有效旳建造一种软件系统。
2、什么是软件?答:计算机软件是与计算机系统操作有关旳程序、规程、规则及任何与之有关旳文档及数据;3、什么是软件危机?分析其产生旳原因与挣脱危机旳措施,你认为目前已经挣脱软件危机了吗?请阐明理由。
软件危机是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
重要是两个问题:(1)怎样开发软件,怎样满足对软件旳日益增长旳需求;(2怎样维护数量不停膨胀旳已经有软件;软件危机旳出现,究其原因,首先是由软件自身旳特点引起旳,如软件越来越复杂,软件故障难于检测,工作量难以估计;另首先则是由于软件开发和维护措施不妥所导致旳,如软件旳个体化特性太强等。
为了挣脱软件危机所导致旳困境,提出软件工程旳概念,其重要思绪是:要把人类长期以来从事多种工程项目所积累起来旳行之有效旳原理,概念,技术和措施,尤其是人类从事计算机硬件研究和开发旳经验教训,应用到软件旳开发和维护中来。
我认为我国目前尚未完全挣脱软件危机,由于伴随经济发展,各行各业对软件人才旳需求不停扩大,由于我国旳软件人才缺口仍旧很大,导致了某些行业内软件开发进度难以预测,软件开发成本难以控制,顾客对产品功能难以满足,软件产品质量无法保证,软件产品难以维护,软件缺乏合适旳文档资料。
4、软件产品旳特性是什么?软件是一种逻辑产品,具有无形性;软件产品旳生产重要是研制;软件不存在磨损和老化问题,但存在退化问题;软件产品旳生产重要是脑力劳动;软件产品生产成本昂贵,目前生产方式尚未挣脱手工生产方式;软件具有“复杂性”,其开发和运行常受到计算机系统旳限制。
软件工程_简答题复习题(带答案)
软件⼯程_简答题复习题(带答案).. ..第⼀章1,与计算机硬件相⽐,计算机软件有哪些特点?软件的特点如下。
1)⽆法直接观察计算机软件的物理形态,只能通过观察它的实际运⾏情况来了解它的功能、特性和质量等。
2)⼈们在分析、设计、开发、测试软件产品,以及在软件开发项⽬的管理过程中,渗透了⼤量的脑⼒劳动。
3)不存在像硬件⼀样的磨损和⽼化现象,但存在着缺陷维护和技术更新的问题。
4)软件的开发和运⾏必须依赖于特定的计算机系统环境。
5)具有可复⽤性。
3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。
1)经费超出预算,项⽬⼀再拖延。
2)不重视需求,开发的软件不能满⾜⽤户的要求,项⽬成功率低。
3)没有规的软件⼯程⽅法,软件可维护性差、软件质量差、可靠性差。
4)开发⼯具落后,⼿⼯⽅式,开发效率低。
所有导致软件危机的原因,都与软件本⾝的产品特点相关。
1)软件是⼀个复杂的逻辑产品。
如果没有解决复杂问题的有效⽅法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费⽤就会持续升⾼。
2)软件产品不能实现⼤规模复⽤,这导致了软硬件⽣产效率的不同。
3)软件⽣产是脑⼒劳动,它看不见、摸不着,开发成本、开发周期等都⽆法做到准确估算,⽣产过程不易控制。
4)软件成本主要是由研发成本构成;⽽硬件的⽣产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相⽐要复杂得多。
5,请简述软件⼯程研究的容。
软件⼯程研究的容包括软件开发⽅法、软件开发模型、软件⽀持过程和软件管理过程。
软件开发⽅法的容涵盖市场调研、正式⽴项、需求分析、项⽬策划、概要设计、详细设计、编程、测试、试运⾏、产品发布、⽤户培训、产品复制、销售、实施、系统维护、版本升级等。
常⽤的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件⽀持过程由所⽀持的CASE⼯具组成,常⽤的CASE⼯具有Power Designer和Rational Rose等。
软件工程期末复习--简答题
9、请说明 IPO 图的作用,并给出一个 IPO 图的模板。
10、什么是耦合?什么是内聚?
11、请画图说明软件工程的层次化结构,并详细分析中间两层的内容。
12、请为下面的程序设计符合判定覆盖的测试用例。 int main() { int a,b,c,x,y,z; scanf(“d%,d%,d%),&a,&b,&c); if a>5 x=10 else x=1; if b>10 y=20 else y=2; if c>15 z=30 else z=3; printf(“d%,d%,d%\n”,x,y,z) } 13、请说明快速原型化模型的基本思想。
大学课程《软件工程》期末复习--简答题
1、试从软件的特点出发分析软件危机产生的原因。 2、一个程序片段如下,请设计符合条件组合覆盖的测试用例。 …… if (a>=4) && (b<0) { c=a+b; else c=a-b; if (c>3) || (c<1) printf(“ c 不在计算区域\n”) else printf(“ %d\n”, c); …… 3、面向对象的分析通常要建立三个模型,请问三个模型的作用? 4、软件工程为什么要强调规范化和文档化? 5、读懂下面的程序,调整格式,使其更容易理解,并添加注释。
二、简答题 1、答案
1) 软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察、分 析、思考和判断才能了解它的功能和性能。 2) 软件对硬件和环境有着不同程度的依赖性, 这导致了软件升级和移植的问题。 计算 机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并 且维护的成本通常比开发成本高许多。 3) 软件生产至今尚未摆脱手工方式, 软件开发的手工行为造就了一个致命的问题, 就 是为应用“量身订做”软件。长期以来,软件给人的感觉是修改几条指令很简单, 客户总是强调软件要适应自己的业务需求。因此,软件产品大多是为客户“订做” 的,通用性差。 4) 软件涉及人类社会的各行各业, 常常涉及一些行业知识, 这对软件工程师提出了很 高的要求。 5) 软件是与文学艺术作品相似的精神作品, 与体力劳动相比, 精神活动过程的特点是 “不可见性”,这大大增加了组织管理上的困难。 2、答案 a>=4 b<0 a>=4 b>=0 a<4 b<0 a<4 b>=0 c>3 c<=3 c<1 c>=1 综合以上条件组合,设计测试用例如下(注意结果不唯一,只要满足上面的组合条件即可) : a=4 b=-1 c=3 a=4 b=0 c=4 a=-1 b=-1 c=0 a=-1 b=0 c=-1 3、答案 1)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对 象方法中,由用例图和场景描述组成。2)对象模型:表示静态的、结构化的系统“数据” 性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。3) 动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制” 特性。 4、答案 软件工程强调规范化和文档化。 规范化的目的是使众多的开发者遵守相同的规范, 使软 件生产摆脱个人生产方式,进入标准化、工程化的生产方式。文档化是将软件的设计思想、 设计过程和实现过程完整地记录下来, 以便于后人的使用和维护, 在开发过程中各类相关人
软件工程学试题及答案
软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。
A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。
A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。
A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。
A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。
A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。
A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。
A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。
A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。
答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。
2. 描述软件需求分析的重要性。
答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。
(软件工程)软件工程复习题简答题部分
1.简述软件工程目标和面临的主要问题。
软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。
包括:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。
2.简述结构化程序设计方法的基本要点。
(1)采用自顶向下,逐步求精的程序设计方法。
(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。
3.简述文档在软件工程中的作用。
(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。
4.简述提高可维护性的方法。
(1)建立明确的软件质量目标(2)利用先进的软件开发技术和工具(3)建立明确的质量保证工作(4)选择可维护的程序设计语言(5)改进程序文档5.软件工程面临的主要问题有哪些?软件费用、软件可靠性、软件可维护、软件生产率、软件重用。
6.增量构造模型有什么特点?增量构造模型是部分阶段进行增量开发,即在该模型中,需求分析阶段和设计阶段与瀑布模型一样,按照瀑布模型方式进行开发,而编码和测试阶段不采用瀑布模型方式,而采用增量方式开发,即先对部分功能进行编码,进行测试,将这部分功能提交用户,然后再对另一部分功能进行编码,测试提交用户,直到把功能按这种方式开发完毕,在这种模型中,用户及早看到部分软件功能,及早发现问题,以便在其它软件功能开发时及时解决。
7.软件测试要经过哪些步骤?.(1)单元测试,集成测试,确认测试,系统测试。
8.简述需求分析方法应遵循的基本原则。
(1)必须能够表达和理解问题的数据域和功能域;(2)可以把一个复杂问题按功能进行分解并可逐层细化;(3)建模。
软件工程(简答题)
1、典型的详细设计工具有流程图、盒图、、类程序设计语言。
问题反馈【教师释疑】正确答案:【PAD图】2、UML是一种语言。
问题反馈【教师释疑】正确答案:【可视化】3、类是一组具有属性、操作、关系和语义的对象的描述。
问题反馈【教师释疑】正确答案:【相同】4、对象是类的一个。
问题反馈【教师释疑】正确答案:【实例】5、用况图是一种表达系统模型的图形化工具。
问题反馈【教师释疑】正确答案:【功能】6、UML中的顺序图是一种交互图,即由一组对象以及按组织的对象之间的关系组成。
问题反馈【教师释疑】正确答案:【时序】7、模块的作用域是指受该模块内一个所影响的所有模块的集合。
问题反馈【教师释疑】正确答案:【判定】8、模块的控制域是指这个模块本身以及所有直接或间接它的模块的集合。
问题反馈【教师释疑】正确答案:【从属于】9、在数据流图中引入数据源和数据潭这两个术语的目的是为了表示系统的,可以使用它们和相关数据流来定义系统的。
问题反馈【教师释疑】正确答案:【环境|边界】10、模块结构图是系统的一个高层蓝图,允许设计人员在较高的层次上进行抽象思维。
模块结构图可用和两种形式来表示。
问题反馈【教师释疑】正确答案:【层次图|HIPO图】11、在设计模块结构图时要基于原则来设计模块。
问题反馈【教师释疑】正确答案:【高内聚低耦合】12、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“尽力使模块的在其控制域之内”。
问题反馈【教师释疑】正确答案:【作用域】13、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“力求深度、宽度、扇出和扇入”。
问题反馈【教师释疑】正确答案:【适中】14、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“改进软件结构,提高模块的”。
软件工程简答题及答案
软件工程简答题及答案软件工程试题整理_ 简答题1、可行性研究的任务是什么?首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。
然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。
从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。
㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。
㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。
一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。
如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点” 或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。
3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。
而渐增式测试往往把单元测试与集成测试和在一起,同时完成。
㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。
㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。
软件工程—简答题
软件工程—简答题四、简答题1. 简述软件危机产生的原因。
答案:软件危机产生的原因有:(每点1分)(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发的管理困难。
由于软件规模大,结构复杂,又具有无形性,导致管理困难,进度操纵困难,质量操纵困难,可靠性无法保证。
(3)软件开发费用不断增加。
软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。
(4)软件开发技术、开发工具落后,生产率提高缓慢。
(5)生产方式落后。
软件仍然使用个体手工方式开发。
2. 简述需求分析的概念及需求分析的基本任务。
答案:需求分析是指开发人员要准确懂得用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
(3分)需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统务必“做什么”的问题。
(2分)3. 简述数据流图的分类及每一类的特点。
答案:数据流图有两类:变换型数据流图与事务型数据流图。
(1分)变换型数据流图是由输入、处理与输出三部分构成,(1分)因此变化型数据流图是一个顺序结构。
(1分)事务型数据流图特征:事务处理中心将它的输入流分离成许多发散的数据流,形成许多加工路径,(1分)并根据输入的值选择其中一个路径来执行。
(1分)4. 简述建立对象模型的过程。
答案:建立对象模型的步骤如下:(每点1分)(1)确定类:标出来自问题域的有关对象类。
(2)准备数据字典:为所有建模实体准备一个数据字典,准确描述各对象类的精确含义,描述当前问题中的类的范围,包含对类的成员、用法方面的假设或者限制;(3)确定关联:确定二个或者多个类之间的相互依靠;(4)确定属性:只考虑与具体应用直接有关的属性(5)使用继承来细化类:使用继承来共享公共结构,以此来重新组织类__全国2010年1月1.简述软件工程面临的问题。
软件工程 简答题复习题(带答案)
软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。
它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。
2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。
通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。
4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。
它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。
5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。
6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。
7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。
它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。
8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。
单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。
9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。
维护包括错误修复、性能优化、功能扩展等。
软件工程期末复习简答题
1. 如何做好软件质量保证工作?答案:软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下几个方面的工作:(1)采用技术手段和工具。
质量保证活动要贯彻开发过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。
(2)组织正式技术评审。
在软件开发的第一个阶段结束时,都要组织正式的技术评审。
国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。
(3)加强软件测试。
软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。
(4)推选软件工程规范(标准)。
用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。
(5)对软件的变更进行控制。
软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。
(6)对软件质量进行度量。
即对软件质量进行跟踪,及时记录和报告软件质量情况。
2. 如何控制因修改而引起的副作用?答案:为了控制因修改而引起的副作用,要做到:(1)按模块把修改分组;(2)自顶向下地安排被修改模块的顺序;(3)每次修改一个模块;(4)对每个修改了的模块,在安排修改下一个模块之前要确定这个修改的副作用,可使用交叉引用表、存储映像表、执行流程跟踪等。
3. 渐增模型有几种?各有何特点?答案:渐增模型是瀑布模型的变种,它有两类: (1)增量构造模型。
它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。
也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开发。
(2)演化提交模型。
它在瀑布模型基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量提交。
4. 对软件开发环境的基本要求有那些?答案:(1)软件开发环境应是高度集成的一体化的系统。
(2)软件开发环境应具有高度的通用性。
(3)软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性。
最新软件工程 简答题复习题(带答案)
第一章121,与计算机硬件相比,计算机软件有哪些特点?3软件的特点如下。
41)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行5情况来了解它的功能、特性和质量等。
62)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的7管理过程中,渗透了大量的脑力劳动。
83)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更9新的问题。
104)软件的开发和运行必须依赖于特定的计算机系统环境。
115)具有可复用性。
123,什么是软件危机?什么原因导致了软件危机?13软件危机的现象如下。
141)经费超出预算,项目一再拖延。
152)不重视需求,开发的软件不能满足用户的要求,项目成功率低。
163)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性17差。
184)开发工具落后,手工方式,开发效率低。
所有导致软件危机的原因,都与软件本身的产品特点相关。
19201)软件是一个复杂的逻辑产品。
如果没有解决复杂问题的有效方法,21以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。
22232)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。
243)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等25都无法做到准确估算,生产过程不易控制。
264)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和27制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要28复杂得多。
295,请简述软件工程研究的内容。
30软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管31理过程。
32软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、33详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、34系统维护、版本升级等。
35常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
36软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。
(完整)软件工程简答题必考
(完整)软件工程简答题必考软件工程简答题必考软件工程是一门研究如何通过系统化的、规范化的、可度量的方法来构建和维护软件的学科。
它的目标是通过合理地应用工程的原理、方法和工具,控制软件开发的各个环节,保证软件的质量和进度,并提高开发效率和可维护性。
下面我们来探究一些软件工程的常见简答题,加深对该领域的理解。
1. 请解释什么是软件过程?软件过程是指在软件开发的整个生命周期中,按照一定的流程和方法进行的活动集合。
它包括需求分析、设计、编码、测试、发布和维护等阶段,并通过规范化的文档和工具来管理和支持这些活动。
通过软件过程,开发团队可以更加有效地组织和协调工作,确保软件开发按时、按质量地完成。
2. 请解释软件生命周期模型,并举例说明。
软件生命周期模型描述了软件开发和维护的不同阶段。
常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
例如,瀑布模型将软件开发划分为需求分析、设计、编码、测试和维护等阶段,每个阶段顺序进行,并且每个阶段结束后都有相应的文档。
这种模型适用于需求明确、变动较少的项目。
3. 请解释什么是软件需求工程?软件需求工程是指对软件需求进行系统化和规范化的管理过程。
它包括需求获取、需求分析与建模、需求验证与确认等活动。
软件需求工程旨在确保对用户需求的全面理解和准确描述,并将其转化为开发团队可以理解和实现的形式,以此为软件开发提供准确的目标和方向。
4. 请解释什么是软件设计原则,并举例说明。
软件设计原则是指为了提高软件系统的设计质量,而从实践中总结出来的一些指导原则。
常见的软件设计原则包括开闭原则、单一职责原则、里氏替换原则等。
例如,开闭原则要求软件系统对扩展开放,对修改关闭,通过模块化的设计,可以方便地添加新功能而不影响已有功能的正常运行。
5. 请解释什么是软件测试?软件测试是指对已经开发完成的软件系统进行验证和评估的过程。
它旨在发现软件系统中的错误和缺陷,以提高系统的质量和可靠性。
软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的级别和类型,针对不同的需求和目标进行。
软件工程期末考试简答题汇总
软件⼯程期末考试简答题汇总1什么是软件⼯程?基本原理有哪些? (6)2成本_效益分析可⽤哪些指标进⾏度量?(写出公式) (6)3什么是数据流图?其中的基本符号各表⽰什么含义?画出定货系统基本数据流图。
6 4⾮渐增式测试与渐增式测试有什么区别? (6)5试从基本符号和设计⽅法分析HC图与JACKSON图异同点 (6)6软件测试的⽬的是什么? (7)7结构化程序设计的思想是什么? (7)8请解释极限编程和⾃适应软件开发,并说明其异同? (7)9需求⼯程的起始阶段,需求⼯程师的主要⼯作是? (7)10请画出“在餐厅使⽤信⽤卡付费”这⼀活动的完整⽤例图? (8)11分析说明结构化分析和⾯向对象分析的区别? (8)12 请简要给出评价软件设计质量的标准? (8)13 ⼀个良好的设计类需要满⾜四个特点,请详细描述这四个特点? (8)14软件项⽬估算内容与步骤 (9)15⾯向对象设计的准则是什么?有哪5个层次和4个部分? (9)16简述软件⼯程⽬标和⾯临的主要问题。
(9)17简述软件⼯程过程。
(9)18简述模块独⽴性的原则。
(10)19简述结构化程序设计⽅法的基本要点 (10)20简述软件⽣命周期开发⽅法的基本过程及每个阶段的任务。
(10)21复印机的⼯作流程⼤致如下: (11)22简述⽂档在软件⼯程中的作⽤。
(12)23简述软件项⽬管理过程。
(12)24简述系统分析员应该具备的主要知识结构和基本素质。
(12)25简述何谓软件开发⽅法?请列举四种主要⽅法。
(12)26简述单元测试的基本内容。
(13)27什么是软件⽣存周期模型?请⾄少列举四种主要模型? (13)28衡量模块独⽴的两个标准是什么?它们各表⽰什么含义?(⽹上) (14)29简述⽩盒测试的思想,并列举两种典型的测试技术。
(14)30简述CMM(软件能⼒成熟度模型)5个等级的含义 (14)31简述软件维护的定义 (15)32简述软件测试的定义 (15)33 UML建模中主要包括哪九种图?并说明类图的定义及其中常见的关系有哪些?15 34什么是字据字典?其作⽤是什么?它有哪些条⽬? (15)35软件⼯程的两⼤范型分别是什么?它们有什么不同? (16)36如何画分层数据流图? (16)37⾯向对象程序设计有哪些优点? (16)38在软件测试中,应注意哪些原则? (17)39程序设计风格是指⼀个⼈编制程序时所表现出来的特点、习惯、逻辑思路等。
软件工程(简答)
需求获取层及相关概念 需求获取层目标:使用 UML 中 的用况、参与者以及依赖等 术语来抽象客观实际问题, 形成系统的需求获取模型;基本术语:用况、参与者、用于表达用况参与者之间关系的关 联、用于表达况之间的包含和扩展、用于表达参与者之间关系泛化。术语确定了系统用 况模型的各种形态
需求获取模型的基本组成 使用 UML 中 的用况、参与者以及依赖等 术语来抽象客观实际问题,形成系统的需求获 取模型
three 结构化方法
2.何谓模块耦合?简述模块耦合的类型。 答:耦合是不同模块之间相互依赖程序的度量 内容耦合:当一个模块直接修改或操作另一个模块的数据,或一个模块不通过正常入口 而转入到另一个模块时, 公共耦合:两个或两个以上的模块共同引用一个全局数据项 控制耦合一个模块通过气喘吁吁向另一个模块传递一个控制信息,接收信号的模块根据 信号值进行适当的动作 标记耦合:若一个模块 A 通过接口向两个模块 B 和 C 传递一个公共参数 数据耦合:模块之间通过参数来传递数据
4) .简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的件需求规约
1.简述需求与需求规约的基本性质。 答:需求的基本性质: 1) 必要的,该需求是用户所要求的。 2)无歧义的,该需求只能用一种方式解释。 3)可测的,该需求是可进行测试的。 4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。 5)可测量的,该需求是可测量的。
同时引入“操作”和“方法”的目的是什么? 答:表达模型化包之间的关系
为什么使用包?如何划分包?
使用 UML 可以从那些角度来刻画一个系统的行为,为什么?
何谓顺序图中的控制操作子?试举例说明。 为了控制交互行为描述的复杂性,以便更清晰地表达顺序图中的复杂控制,给出了个个 控制操作子,选择、条件、并发、迭代操作控制子
软件工程简答题复习
简答题1、简述什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题绝不仅仅是“不能正常运行的”软件才具有的,实际上几乎所有软件都不同程度地存在这些问题。
主要表现,如: 对软件开发成本和进度估计不准确、软件产品的质量靠不住、用户对“已完成的”软件系统不满意、软件开发速度跟不上、软件不可维护以及没有适当的文档资料等。
2、简述软件质量保证的目标。
(1) 事前预防工作,例如,着重于缺陷预防而不是缺陷检查。
(2) 尽量在刚刚引入缺陷时即将其捕获,而不是让缺陷扩散到下一个阶段。
(3) 作用于过程而不是最终产品,因此它有可能会带来广泛的影响与巨大的收益(4) 贯穿于所有的活动之中,而不是只集中于一点。
3、简述螺旋模型的优缺点。
螺旋模型具有以下优点:(1) 设计上的灵活性,可以在项目的各个阶段进行变更。
(2) 以小的分段来构建大型系统,使成本计算变得简单容易。
(3) 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
(4) 随着项目推进,客户始终掌握项目的最新信息,从而使得客户能够和管理层有效地交互。
(5) 对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质作为软件开发的一个重要目标。
螺旋模型也存在以下缺点:螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险: 当项目实际上正在走向灾难时,开发人员可能还以为一切正常。
所以,很难让用户确信这种演化方法的结果是可以控制的。
4、哪些方法有助于提高软件的可理解性?以下方法都有助于提高软件的可理解性(1) 模块化(2) 详细的设计文档(3)结构化设计方法(4)程序内部的文档(5)良好的高级程序设计语言5、什么是单元测试?其内容包括哪些?单元测试又称为模块测试,是针对软件设计的最小单位一程序模块,进行正确性检验的测试工作,其目的在于发现各模块内部可能存在的各种差错。
软件工程考试题及答案
软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 软件工程的三要素包括()。
A. 方法、工具和过程B. 方法、工具和人员C. 方法、过程和人员D. 工具、过程和人员答案:C3. 软件需求分析阶段的主要任务是()。
A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:A4. 软件设计阶段的主要任务是()。
A. 制定软件开发计划B. 确定软件的体系结构C. 编写软件详细设计文档D. 进行软件测试答案:B5. 软件测试的目的是()。
A. 证明软件是正确的B. 发现软件中的错误C. 证明软件是无错误的D. 证明软件是可维护的答案:B6. 软件维护不包括以下哪项活动()。
A. 改正性维护B. 适应性维护C. 完善性维护D. 软件设计答案:D7. 软件项目管理的主要任务不包括()。
A. 进度管理B. 质量管理C. 风险管理D. 软件编码答案:D8. 面向对象方法中,对象的基本特性不包括()。
A. 抽象B. 封装C. 继承D. 多态答案:D9. UML(统一建模语言)是一种()。
A. 程序设计语言B. 数据库查询语言C. 建模语言D. 脚本语言答案:C10. 在软件开发过程中,需求变更是不可避免的,以下哪项不是需求变更的原因()。
A. 客户的需求不明确B. 项目范围的扩大C. 技术实现的困难D. 软件已经完成答案:D二、多项选择题(每题3分,共15分)11. 软件工程的基本原理包括()。
A. 抽象B. 模块化C. 逐步求精D. 迭代开发答案:ABC12. 软件需求分析阶段的输出包括()。
A. 需求规格说明书B. 用户手册C. 系统架构图D. 测试计划答案:A13. 软件设计阶段的主要文档包括()。
A. 架构设计文档B. 详细设计文档C. 用户手册D. 测试计划答案:AB14. 软件测试的类型包括()。
软件工程导论简答题
1.软件工程旳七条基本原理是什么?答:软件工程旳七条基本原理是:用分阶段旳是旳生存周期计划严格管理;坚持进行阶段评审;严格实行旳产品控制;采用现代程序技术;成果应能清晰地审查;开发小组旳组员应当少而精;承认不停改善软件工程旳必要性。
2.良好旳编码风格应具有哪些条件?答:应具有如下条件:(1)使用原则旳控制构造;(2)有限制地使用GOTO语句;(3)源程序旳文档化(应具有如下内容)①故意义旳变量名称——“匈牙利命名规则”。
②合适旳注释——“注释规范”。
③原则旳书写格式:——用分层缩进旳写法显示嵌套构造旳层次(锯齿形风格);——在注释段旳周围加上边框;——在注释段与程序段、以及不一样程序段之间插入空行;——每行只写一条语句;——书写体现式时,合适使用空格或圆括号等作隔离符。
(4)满足运行工程学旳输入输出风格。
3.简述文档在软件工程中旳作用。
答:(1) 提高软件开发过程旳能见度(2) 提高开发效率(3) 作为开发人员阶段工作成果和结束标志(4) 记录开发过程旳有关信息便于使用与维护;(5) 提供软件运行、维护和培训有关资料;(6) 便于顾客理解软件功能、性能。
4.可行性研究包括哪几方面旳内容?答:(1)经济可行性:与否有经济效益,多长时间可以收回成本;(2)技术可行性:既有技术能否实现本系统,既有技术人员能否胜任,开发系统旳资源能否满足;(3)运行可行性:系统操作在顾客内部行得通吗?(4)法律可行性:新系统开发与否会侵犯他人、集体或国家利益,与否违反国家法律。
5.构造化旳需求分析描述工具有哪些?答:有数据流图(DFD)、数据字典(DD)、鉴定表、鉴定树、构造化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制阐明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。
6.一般面向对象分析建模旳工具(图形)有哪些?答:用例图、类/对象图、对象关系图、实体—关系图(E—R)、事件轨迹图(时序图)和状态转换图(STD)等7.UML统一建模语言有哪几种图形?用例图、类图、对象图、构件(组件)图、布署(配置)图、状态图、活动图、次序(时序)图、合作(协作)图等九种图。
软件工程复习资料简答题
三、简答题1、软件开发与写程序有何不一样?答:软件包括程序,程序是软件旳一部分。
软件是程序、数据及其有关文档旳完整集合。
程序只是为了实现软件旳功能和性能规定而编写旳指令序列。
2、软件旳构造设计可以采用多种措施,目前重要使用旳措施有哪几种?内容分别是什么?3、软件质量保证旳重要功能是什么?4、什么是DFD?其意义怎样?解释DFD四要素旳内容。
答:(1)是数据流图英文缩写,是一种描述数据在系统中流动旳图形工具;(2)是以图形方式体现数据处理系统中信息旳传递和变换处理过程,它从数据加工旳角度来描述一种企事业组织中旳业务活动;(3)A圆框符号转换数据流旳处理过程,又称泡。
B方框符号代表位于软件系统边界之外旳信息生产着或消费者。
C箭头符号代表转换之间旳有向流动旳数据项或数据项集合。
D双杠符号代表为一种或多种转换提供数据源或数据存储服务旳缓冲区、文献或数据库。
5、需求分析旳难点重要表目前哪几种方面?答:(1) 问题旳复杂性。
因顾客需求所波及旳原因繁多引起,如运行环境和系统功能等等。
(2)交流障碍。
需求分析波及人员较多,如软件系统顾客、问题领域专家、需求工程师和项目管理员等,这些人具有不一样旳背景知识,处在不一样旳角度,饰演不一样角色。
导致了互相之间交流旳困难。
(3)不完备性和不一致性。
由于多种原因,顾客对问题旳陈说往往是不完备旳,其各方面旳需求还也许存在着矛盾,需求分析要消除矛盾,形成完备及一致性旳定义。
(4)需求易变性。
顾客需求旳变动是一种极为普遍旳问题,虽然是部分变动,也往往会影响到需求分析旳所有,导致不一致性和不完备性。
为了克服上述困难,人们重要围绕着需求分析旳措施及自动化工具(如CASE技术)等方面进行研究。
6、白盒测试中旳逻辑覆盖有哪几种常用旳覆盖技术?试对它们旳检错能力进行比较。
答:(1)语句覆盖(2) 鉴定覆盖(比语句覆盖严格些)(3) 条件覆盖(比单是鉴定覆盖要严格)(4) 鉴定/条件测试(条件覆盖也不一定满足鉴定覆盖,由于只符合条件覆盖旳用例也许会不满足每个鉴定语句均有真值或假值出现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,与计算机硬件相比,计算机软件有哪些特点?软件的特点如下。
1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。
2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动。
3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。
4)软件的开发和运行必须依赖于特定的计算机系统环境。
5)具有可复用性。
3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。
1)经费超出预算,项目一再拖延。
2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。
4)开发工具落后,手工方式,开发效率低。
所有导致软件危机的原因,都与软件本身的产品特点相关。
1)软件是一个复杂的逻辑产品。
如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。
2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。
3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。
4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。
5,请简述软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。
7,请简述软件工程的目标、过程和原则。
目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。
1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效率、高效益)。
2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组织过程。
3)进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程的管理。
9,请简述现代软件工程与传统软件工程显著的区别和改进。
1)传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向对象技术为标志。
2)不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中,采用面向对象的思维方式,更加完整、自然地反映客观世界。
3)采用架构技术,开发效率、产品质量得到了极大提高。
4)更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP模型、XP模型、过程改进、能力成熟度模型、配置管理等。
第二章1,如何理解软件生命周期的内在特征?软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,再到最终该产品被市场淘汰的全过程。
软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。
由于每个阶段的任务相对于总任务难度会大幅度降低,因此在资源外配、时间把握和项目管理上都会比较容易控制。
应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。
3,当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较合?开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。
螺旋模型是一种综合性的模型,适和于较复杂的系统。
5, XP是一种什么样的模型?XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心。
实行XP的条件如下。
1)企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具。
2)软件结构是开放的,增量可随意整合。
3)开发团队拥有“系统隐喻"。
7,请简述软件过程。
软件过程就是软件产品的加工过程,其本质就是将“客观世界”映射(虚拟)到“计算机世界”,即从抽象到具体的逐步细化过程。
系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就是计算机世界里的代码。
9,请简述CMM的作用。
1)CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认可软件工程达到的程度(如同评定职称的条件)2)CMM是软件组织提升自身能力、走向成熟的参照系。
它提供了走向成熟的阶梯目标,但并不提供走向目标的方法。
3)CMM等级的提高依靠软件过程改进。
4)CMM既是评估软件能力成熟度的模型,也起到了促进软件企业按照该模型设置的级别和关键过程域不断改进自己的软件过程的作用。
11,假设你要开发一个软件,它的功能是把这个数开平方,所得到的结果应该精确到小数点后4位。
一旦实现并测试完之后,该产品将被抛弃。
你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。
对这个软件的需求很明确,实现开平方功能的算法也很成熟。
因此,既无须通过原型模型来分析需求也无须用原型模型来验证设计方案。
此外,一旦实现并测试完之后,该产品将被地弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。
第五章1,在选择编程语言时,通常要考虑哪些因素?1)待开发系统的应用领域,即项目的应用范围。
2)用户的要求。
3)软件开发人员的喜好和能力。
4)系统的可移植性要求。
5)算法和数据结构的复杂性。
3,什么是调试?什么是测试?二者有何区别?调试(debug)指的是对模块的调试,是程序员交付可运行的代码模块所必须经历的工作。
软件测试(test)有如下特点。
1)软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。
2)不仅仅是测试程序,还应该对开发过程中所有的产品进行测试,包括文档,其目的是为了尽早地、尽可能多地发现并排除软件中潜在的错误。
二者的区别如图所示。
5,请简述静态测试和动态测试的区别。
按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。
静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。
静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。
与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。
测试人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。
7,软件测试的目的是什么?测试的目的如下1)测试是一个为了发现程序中的错误为目的的程序执行过程。
2)个好的测试用例是能最大限度地找到迄今为止尚未发现的错误。
3)成功的测试是能发现了那些尚未发现的错误。
9,什么是白盒测试?有哪些常用的白盒测试方法?白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑。
常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。
11,软件测试应该划分几个阶段?各个阶段应重点测试的内容是什么?软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试。
每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告5个步骤。
1)单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。
它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
2)集成测试是软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
3)系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非是一项简单的任务,它被称为测试的“先知者问题".4)验收测试是向软件的购买者展示该软件系统满足其用户的需求。
它的测试数据通常是系统测试的测试数据的子集。
5)回归测试是在软件维护阶段,对软件进行修改之后进行的测试。
其目的是检验对软件进行。
第十一章1,请简述项目、项目管理和软件项目管理。
项目、项目管理和软件项目管理的概念如下。
1)项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、2)质量标准,以及特定的功能、性能和接口要求。
3)项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目的计划、进度、质量、成本、资源进行管理和控制的活动。
4)软件项目管理以通用的项目管理知识体系为基础,管理的对象是软件工程项目。
它结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,使得整个软件开发过程(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质的完成软件交付用户使用。
3,请简述项目计划应该包括的内容。
项目计划应该包括的内容如下。
1)确定详细的项目实施范围。
2)定义递交的工作成果。
3)评估实施过程中主要的风险。
4)制定项目实施的时间计划。
5)成本和预算计划。
6)人力资源计划等。
5,如何进行项目的时间管理?项目的时间管理首先要对项目活动进行定义,依据包括:工作分解结构、项目范围说明、历史信息、约束条件、假定和专家评论。
在整个项目中,我们需要一份能清晰描述活动发生的时间和所需要的资源的计划,项目进度安排的内容为如下1)定义一组项目活动,并建立活动之间的相互关系。
2)估算各个活动的工作量和完成任务所需要的资源。
3)定义里程碑。
4)分配人力和其他资源,制定进度时序。
5)检查进度安排,确保任务之间没有冲突,并且包含了完成项目必需的所有任务。
7,请简述估算的作用。
计划是项目的启动入口,项目开展过程就是执行计划。
而估算是制定计划的依据,因此估算是项目开展的基础。
估算的主要工作如下。
1)范围估算:搞清软件边界。
2)规模估算:定量单位采用LOC或FP3)工作量估算:工作量估算决定了开发团队的规模和组建,决定开发周期和进度估算。
4)开发周期与进度估算:进度估算是对整个开发周期中不同阶段的里程碑进行估算。
5)人力资源估算:在考虑各种软件开发资源时,人是最重要最优先考虑的资源。
6)开发成本估算:整个开发周期所花费的工作量产生的劳动费用。
7)软硬件资源估算:软件开发所需的硬件工具及软件工具。
9,请简述做进度计划的两种方式。
做进度计划的两种方式如下。
1)Gant图用线段标明子任务的分解;标明各个任务的计划开始时间、完成时间;标明各个任务与参与工作的人数,各子任务间的并行和串行的关系的衔接情况。