2019软件工程简答题集锦

合集下载

软件工程 各章 简答题

软件工程 各章 简答题

第一章绪论1. 软件产品的特性是什么?2. 软件生产的发展有几个阶段?各有何特征?3. 什么是软件危机?软件危机的表现是什么?4. 什么是软件工程?软件工程性质是什么?5. 软件工程目标和内容是什么?6. 软件工程面临的问题什么?7. 什么是软件工程过程?它包含些过程?8. 什么是软件生存周期?它有哪几个活动?9. 什么是软件生存周期模型?有哪些主要模型?10. 什么是软件开发方法?有哪些主要方法?第二章软件可行性研究与项目开发计划1. 可行性研究的任务是什么?2. 研究项目的技术可行性一般要考虑哪些情况?3. 可行性研究有哪些步骤?4. 可行性研究报告有哪些主要内容?5. 成本一效益分析可用哪些指标进行度量?6. 项目开发计划有哪些内容?第三章软件需求分析1. 什么是需求分析?需求分析阶段的基本任务是什么?2. 需求分析的难点主要表现在哪几个方面?3. 需求分析方法应遵循的原则是什么?4. 需求分析阶段的文档是什么?5. 什么是结构化分析方法?该方法使用什么描述工具?6. 结构化分析方法通过哪些步骤来实现.7. 什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?8. 画数据流图的步骤是什么?画数据流图应该注意什么事项?9. 什么是数据字典?其作用是什么?它有哪些条目?10. 建立数据字典的形式是什么?11. 描述加工逻辑有哪些工具?12. 什么是IDEF方法?该方法中建立功能模型的基本步骤是什么?IDEF方法有什么特点?13. 简述SA方法的优缺点.第四章软件概要设计1. 什么是软件概要设计?该阶段的基本任务是什么?2. 什么是模块?模块有哪些基本属性?3. 软件设计的基本原理包括哪些内容?4. 衡量模块独立性的两个标准是什么?它们各表示什么含义?5. 模块间的耦合性由哪几种?它们各表示什么含义?6. 影响公共耦合的复杂程度的因素是什么?公共耦合会引起什么问题?7. 降低模块间的耦合度的方法有哪些?8. 模块的内聚性由哪几种?各表示什么含义?9. 什么是软件结构?结构图的主要内容是什么?10. 简述软件结构设计优化准则.11. 什么是模块的作用范围?什么是模块的控制范围?它们之间应该建立什么关系?12. 什么是”变换流”?13. 什么是”事务流”14. 面向数据流设计方法的过程是什么?15. 试述”变换分析”的设计步骤.试将变换型DFD数据流图转换成软件结构图.16. 试述”事务分析”的设计步骤.试将事务型DFD数据流图转换成软件结构图17. 叙述由IDEF图导出初始软件结构图的方法.第五章软件详细设计1. 详细设计的基本任务是什么?2. 结构化程序设计基本要点是什么?3. 详细设计有哪几种描述方法?4. 程序流程图的特点是什么?5. PAD图的特点是什么?6. 过程描述语言(PDL)的特点是什么?7. 简述Jackson方法的设计步骤.第六章软件编码1. 程序语言有哪些共同特征?2. 在项目开发时,选择程序设计语言通常考虑哪些因素?3. 第4代语言(4GL)有哪些主要特征?4. 举例说明各种程序设计语言的特点及适用范围.5. 什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?第七章软件测试1. 软件测试的目的是什么?2. 在软件测试中,应注意哪些原则?3. 什么是静态测试?什么是动态测试?4. 什么是黑盒测试法?什么是白盒测试法?5. 白盒测试有哪些覆盖标准?试对它们的检错能力进行比较.6. 采用黑盒技术设计测试用例有哪几种方法?这些方法呼有什么特点?7. 简要说明如何划分等价类?8. 用等价类划分的方法设计测试用例的步骤是什么?9. 使用边界值分析方法设计测试用例的原则有哪些?10. 软件测试过程中需要哪些信息?11. 软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?12. 单元测试有哪些内容?测试中采用什么方法?13. 什么是集成测试?为什么要进行集成测试?14. 非渐增式测试与渐增式测试有什么区别?15. 渐增式测试中组装模块的方法有哪些?各有什么优点和缺点?16. 什么是确认测试?该阶段有哪些工作?17. 调试的目的是什么?调试有哪些技术手段?第八章软件维护1. 软件维护有哪些内容?2. 什么是非结构维护?非结构化维护的特点是什么?3. 什么是结构化维护?结构化维护的特点是什么?4. 软件维护困难的原因是什么?5. 影响软件维护代价的因素有哪些?6. 软件维护费用的度量模型是什么?7. 软件维护的流程是什么?8. 维护技术有哪些?9. 软件维护的副作用有哪些?10. 如何控制因修改而引起的副作用?11. 什么是软件可维护性?可维护性度量的特性是什么?12. 提高可维护性的方法有哪些?13. 为了保证软件的可维护性,需要做哪些质量保证检查?14. 好的文档的作用和意义是什么?第九章软件开发的增量模型1. 瀑布模型有何局限性?2. 增量模型的基本思想是什么?3. 渐增模型有几种?各有何特点?4. 快速原型模型有几种?各有何特点?5. 快速原型模型的基本思想是什么?6. 运用原型的策略有几种?7. 使用快速原型方法构造原型时,对原型的要求是什么?8. 原型特性分为几种类型?9. 快速原型模型的开发步骤是什么?10. 构造原型的技术有哪些?11. 评价快速原型模型的优缺点.12. 原型的作用是什么?13. 什么情况下适宜使用原型?什么情况下不宜使用原型?第十章面向对象的方法1. 简述对象,类,类结构,消息方法的基本概念.2. 传统开发方法存在的问题什么?3. 为什么说用结构化方法开发的软件,其稳定性,可修改性和可重用性都比较差?4. 简述面向对象的特征.5. 继承性和多态性的好处是什么?6. 简述面向对象的要素.7. 面向对象分析模型的用途是什么?8. 简述对象模型的特征,举现实世界的例子,给出它的一般化关系,聚集关系的描述.9. 简述动态模型的特征,说明事件,事件跟踪图,状态,状态图的含义.10. 简述功能模型的特征.11. 简述三种分析模型的关系.12. 简述对象建模的过程.13. 简述动态建模的过程.14. 简述功能建模的过程.15. 面向对象设计准则是什么?16. 简述面向对象设计的启发规则.17. 系统设计的内容是什么?18. 对象设计的内容是什么?19. 在面向对象程序设计中,为适应面向对象方法所特有的概念(例如继承性)而必须遵循哪些新准则?20. 在类的实现中,利用既存类的途径是什么?21. 面向对象软件的测试如何进行?第十一章软件质量与质量保证1. 软件质量的含义是什么?2. 影响软件质量的因素有哪些?3. 什么是软件质量保证?4. 软件质量保证的主要功能是什么?5. 软件质量保证策略是什么?6. 软件质量保证的主要任务是什么?7. 说明McCall软件质量度题模型.8. 说明ISO的软件质量评价模型.9. 软件复杂性度量的主要参数有哪些?10. 程序复杂性的度量方法有哪些?11. McCabe度量法的缺点是什么?12. 什么是软件的可靠性?它们能否定量计算?13. 为什么要进行软件评审?软件设计质量评审与程序质量评审都有哪些内容?14. 提高软件质量和可靠性的技术有哪些?15. 说明容错软件的定义?16. 说明容错的一般方法?17. 说明容错系统的设计过程.第十二章软件工程管理1. 说明软件工程管理的重要性.2. 软件工程管理包括哪些内容?3. 软件项目计划中包括哪些内容?4. 软件开发成本估算方法有哪几种?各有什么特点?5. 画出表示软件任务开发并行性的网络图.6. 软件质量保证应做好哪几方面的工作?7. 什么是软件配置管理?什么是基线?8. 请叙述软件工程过程中版本控制与变更控制处理过程.9. 软件工程的意义是什么?都有哪些软件过程标准?10. 请说明软件文档的作用?软件开发项目生存期各阶段都包含哪些文档?第十三章软件开发环境1. 什么是软件开发环境?请列出其发展情况.2. 软件开发环境的基本要求是什么?3. “软件开发环境应是高度集成的一体化的系统”的含义是什么?4. 软件开发环境应具体高度的通用性.在些,通用性包括哪些方面?5. “软件开发环境应易于定制,裁剪或扩充以符合用户要求”,在此,”定制”,”裁剪”,”扩充”的含义是什么?6. 请叙述软件开发环境的分类.7. 何谓软件工具?通常包含哪几部分?8. 当今软件工具发展有何特点?9. 什么是CASE?CASE工具有哪些分类?10. 请叙述集成化CASE的五级模型.11. CASE工作台有哪些分类?。

《软件工程》期末复习简答题.docx

《软件工程》期末复习简答题.docx

软件工程期末复习简答题1、试从软件的特点出发分析软件危机产生的原因。

2、一个程序片段如下,请设计符合条件组合覆盖的测试用例。

if (a>=4) && (b<0) (c=a+b;elsec=a-b;if (03) || (c<l)printf(u c不在计算区域\n”)elseprintf("%d\n", c);3、面向对象的分析通常要建立三个模型,请问三个模型的作用?4、软件工程为什么要强调规范化和文档化?5、读懂下面的程序,调整格式,使其更容易理解,并添加注释。

int main(){int a[10];for (int i =0;i〈10;i++)scanf( "%d" , a[i]);int max=a[O], min=a[l];for (int j = 0;j<10;j++)(max=(max>a[j]?max:a[j]);min=(min<a[j]?min:a[j]);}printf(〃max二%d〃,max);printf(〃min= %d〃, min);printf(〃\n〃);return 0;}6、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与用户需求的区别?7、一个程序片段如下,请设计符合判定覆盖的测试用例。

if (a>=5) && (b<0) (c=a+b;elsec=a-b;if(c>5) || (c<l)printf(u c 不在计算区域\n”)elseprintf("%d\n", c);8、请说明对象模型的作用是什么?9、 请说明IPO 图的作用,并给出一个IPO 图的模板。

10、 什么是耦合?什么是内聚?请画图说明软件工程的层次化结构,并详细分析中间两层的内容。

int main() int a,b,c,x,y,z;scanf("d%,d%,d%),&a,&b,&c);if a>5 x=10 else x=l;if b>10 y=20 else y=2;if 015 z=30 else z=3;prin 顷"d%,d%,d%\n",x,y,z)13、请说明快速原型化模型的基本思想。

软件工程的100道问答题

软件工程的100道问答题

软件工程的100道问答题软件工程的100道问答题软件工程的100道问答题1、什么是软件危机?产生软件危机的原因?怎样消除?2、什么是软件工程?包括哪些内容?3、软件生存周期包含哪些内容?4、软件开发模型有几种?各有什么特点?7、在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?8、一个软件开发系统的可行性研究报告应如何编写?9、数据流图有哪几种基本符号?10、画数据流图原则是什么?11、数据流图在软件分析中的作用是什么?12、数据字典的作用?13、什么是数据字典?有几个定义?各自特点是什么?14、有几种效益的分析方法?15、需求分析的任务是什么?16、需求分析通常采用哪些分析技术?17、什么是结构化分析?他的结构化体现在哪里?18、简述面向对象分析技术的主要步骤?19、原型开发技术的目的,特点是什么?20、简述总体设计的一般过程?21、什么叫软件结构?什么叫软件工程?二者之间关系?22、解释深度、宽度、扇出、扇入对软件的影响。

23、什么叫模块化?m代表的含义是什么?24、模块化的三个重要特征是什么?阐明各自的作用。

25、举例说明各种耦合情况和各种内聚情况。

26、简述设计准则的内容。

27、简述层次方框图与软件结构图的异同点。

28、事物型软件结构图有什么特点?原因是什么?29、详细设计的任务是什么?30、什么是结构化程序设计?用n-s图表示三种基本结构。

31、简述jackson程序设计方法的主要内容。

32、简述wariner程序设计方法的主要内容。

35、c语言属于第几代语言?第四代语言特点是什么?36、简述高级语言的应用特点和内在特点。

37、试分析程序设计语言特点及软件可*性、可理解性、可修改性、可测试性及成本的关系。

38、选择一种语言的实用标准是什么?39、简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。

40、程序的编码风格主要体现在哪几个方面?41、软件测试的基本任务是什么?测试与调试区别是什么?42、软件测试的目标是什么?43、软件测试分几个步骤进行?每个步骤解决什么问题?44、软件测试有几种方法?每种方法的特点是什么?45、软件出错有几种类型?验证其程序正确性有几种方法?46、什么是单元测试和集成测试?他们各有什么特点?47、简述渐增式测试方法与非渐增式测试方法的优劣。

软件工程常考简答题

软件工程常考简答题

绪论1、什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是以计算机科学理论及其他有关学科旳理论为指导,采用工程化旳概念、原理、技术和措施进行软件旳开发和维护,把通过时间证明是对旳旳管理措施和目前可以得到旳最佳旳技术、措施相结合,以期用较少旳代价获取高质量旳软件。

计算机科学侧重于理论研究,其成果可应用于软件工程,而软件工程则强调怎样有效旳建造一种软件系统。

2、什么是软件?答:计算机软件是与计算机系统操作有关旳程序、规程、规则及任何与之有关旳文档及数据;3、什么是软件危机?分析其产生旳原因与挣脱危机旳措施,你认为目前已经挣脱软件危机了吗?请阐明理由。

软件危机是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

重要是两个问题:(1)怎样开发软件,怎样满足对软件旳日益增长旳需求;(2怎样维护数量不停膨胀旳已经有软件;软件危机旳出现,究其原因,首先是由软件自身旳特点引起旳,如软件越来越复杂,软件故障难于检测,工作量难以估计;另首先则是由于软件开发和维护措施不妥所导致旳,如软件旳个体化特性太强等。

为了挣脱软件危机所导致旳困境,提出软件工程旳概念,其重要思绪是:要把人类长期以来从事多种工程项目所积累起来旳行之有效旳原理,概念,技术和措施,尤其是人类从事计算机硬件研究和开发旳经验教训,应用到软件旳开发和维护中来。

我认为我国目前尚未完全挣脱软件危机,由于伴随经济发展,各行各业对软件人才旳需求不停扩大,由于我国旳软件人才缺口仍旧很大,导致了某些行业内软件开发进度难以预测,软件开发成本难以控制,顾客对产品功能难以满足,软件产品质量无法保证,软件产品难以维护,软件缺乏合适旳文档资料。

4、软件产品旳特性是什么?软件是一种逻辑产品,具有无形性;软件产品旳生产重要是研制;软件不存在磨损和老化问题,但存在退化问题;软件产品旳生产重要是脑力劳动;软件产品生产成本昂贵,目前生产方式尚未挣脱手工生产方式;软件具有“复杂性”,其开发和运行常受到计算机系统旳限制。

东师】2019年秋季《软件工程》离线考核参考答案

东师】2019年秋季《软件工程》离线考核参考答案

东师】2019年秋季《软件工程》离线考核参考答案离线作业考核软件工程》满分100分一、名词解释题(每小题4分,共20分)1.软件生存周期模型温馨提示:研究课本知识,并完成相应作答]正确答案:是描述软件开发过程中各种活动如何执行的模型。

2.数据字典DD温馨提示:研究课本知识,并完成相应作答]正确答案:数据字典是用来定义数据流图中的各个成分的具体含义的。

它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

3.内聚性温馨提示:研究课本知识,并完成相应作答]正确答案:内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

4.JSP方法温馨提示:研究课本知识,并完成相应作答]精确答案:JSP方法是面向数据布局的设计方法,其定义了一组以数据布局为指导的映射过程,它按照输入,输出的数据布局,按肯定的规则映射成软件的过程描述,即程序布局。

5.多态性温馨提示:研究讲义知识,并完成相应作答]精确答案:指相同的操作或函数、过程可作用于多种类型的工具上并获得分歧结果。

或(分歧的工具,收到同一消息可以产生分歧的结果。

)二、简答题(每小题8分,共32分)1.简述容错技术的四种主要手段,并解释。

温馨提示:研究讲义知识,并完成相应作答]正确答案:结构冗余:包括静态冗余、动态冗余和混合冗余。

信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。

工夫冗余:指重复执行指令或程序来消除瞬时错误带来的影响。

冗余附加技术:指为实现上述冗余技术所需的资源和技术。

2.以G.J.Myers的观点,简述对软件测试的目的。

温馨提示:研究课本知识,并完成相应作答]正确答案:软件测试是:1)为了发现错误而执路程序的过程;2)一个好的用例能够发现至今尚未发现的错误的测试。

3)一个成功的测试是发现至今尚未发现的错误的测试。

3.就程序设计语言的工程特性而言,对程序编码有哪些要求?[温馨提示:研究课本知识,并完成相应作答]精确答案:就程序设计语言的工程特性而言,对程序编码有如下要求:1)可移植性2)开发工具的可利用性3)软件的可重用性4)可维护性4.模块的内聚性包括哪些类型?温馨提示:研究课本知识,并完成相应作答]正确答案:模块的内聚性包括:1)偶然内聚2)逻辑内聚3)工夫内聚4)通信内聚5)顺序内聚6)功能内聚三、理论使用题(每题15分,共30分)1.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。

软件工程_简答题复习题(带答案)

软件工程_简答题复习题(带答案)

软件⼯程_简答题复习题(带答案).. ..第⼀章1,与计算机硬件相⽐,计算机软件有哪些特点?软件的特点如下。

1)⽆法直接观察计算机软件的物理形态,只能通过观察它的实际运⾏情况来了解它的功能、特性和质量等。

2)⼈们在分析、设计、开发、测试软件产品,以及在软件开发项⽬的管理过程中,渗透了⼤量的脑⼒劳动。

3)不存在像硬件⼀样的磨损和⽼化现象,但存在着缺陷维护和技术更新的问题。

4)软件的开发和运⾏必须依赖于特定的计算机系统环境。

5)具有可复⽤性。

3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。

1)经费超出预算,项⽬⼀再拖延。

2)不重视需求,开发的软件不能满⾜⽤户的要求,项⽬成功率低。

3)没有规的软件⼯程⽅法,软件可维护性差、软件质量差、可靠性差。

4)开发⼯具落后,⼿⼯⽅式,开发效率低。

所有导致软件危机的原因,都与软件本⾝的产品特点相关。

1)软件是⼀个复杂的逻辑产品。

如果没有解决复杂问题的有效⽅法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费⽤就会持续升⾼。

2)软件产品不能实现⼤规模复⽤,这导致了软硬件⽣产效率的不同。

3)软件⽣产是脑⼒劳动,它看不见、摸不着,开发成本、开发周期等都⽆法做到准确估算,⽣产过程不易控制。

4)软件成本主要是由研发成本构成;⽽硬件的⽣产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相⽐要复杂得多。

5,请简述软件⼯程研究的容。

软件⼯程研究的容包括软件开发⽅法、软件开发模型、软件⽀持过程和软件管理过程。

软件开发⽅法的容涵盖市场调研、正式⽴项、需求分析、项⽬策划、概要设计、详细设计、编程、测试、试运⾏、产品发布、⽤户培训、产品复制、销售、实施、系统维护、版本升级等。

常⽤的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。

软件⽀持过程由所⽀持的CASE⼯具组成,常⽤的CASE⼯具有Power Designer和Rational Rose等。

2019年电大本科《软件工程》考试试题附答案【备考资料〗

2019年电大本科《软件工程》考试试题附答案【备考资料〗

2019年电⼤本科《软件⼯程》考试试题附答案【备考资料〗2019年电⼤本科《软件⼯程》考试试题附答案⼀、选择题1、软件⼯程的研究者将软件开发和维护过程概括为(8)⼤活动。

2、(⾃律、善于沟通、具有⼀定的软件技能)是职业软件⼯程师的必要条件。

3、计算机病毒是指(⼀组⾃我复制和⾃动执⾏的具有破坏能⼒的代码)。

4、软件需求具有(D)。

A.主观性 B.不确定性 C.多变性 D.以上全部5、描述软件需求通常不⽤哪个⼯具(模块结构图)。

6、软件结构图中没有(判断)元素。

7、程序流程图与数据流程图的关系(不确定)。

8、包含关系⽤于构造多个⽤例(共性的部分)。

9、如果说⽤例F被⽤例T扩展,意思是(F是⼀个⼀般⽤例,T是⼀个特殊⽤例)。

10、⽤(E-R图)对需要长久保存的信息进⾏建模。

11、美国卡内基﹒梅隆⼤学制定的SW-CMM是(软件成熟度模型)。

12、螺旋模型是⼀种将(瀑布模型和增量模型)结合起来的软件开发模型。

13可⾏性研究的四⼤要素是(经济、技术、法律和社会环境)。

14、软件调研报告是在(需求分析之前)提交的时候。

15、系统流程图的主要作⽤(描述系统的物理模型).16、PDL是⼀种(过程设计语⾔)语⾔。

17、结构化设计⽅法划分模块的原则是(低耦合,⾼内聚)。

18、配置视图体现了系统的实现环境,反映系统的(物理架构)。

19、⾓⾊可以有四种类型:系统的使⽤者,硬件设备,外部系统和(时间)。

20、功能模型⽤于表达系统的需求,为软件的进⼀步分析和设计打下基础。

在⾯向对象⽅法中,由(⽤例图和场景描述)实现。

21、下⾯的哪个选项不是软件⼯程的宗旨(研究算法)。

22、针对需求不确定的软件开发,⽐较好的模型是(快速原型化模型)。

23、可⾏性分析研究的费⽤⼤约是项⽬总经费的(6%)。

24、业务需求描述的是(软件的⽬标、规模和范围)。

25、⼀个数据流程图中的图形符号有且仅有(4)种。

26、⾮直接耦合的模块独⽴性最强,(内容耦合)的模块独⽴性最弱。

软件工程期末考试简答题汇总

软件工程期末考试简答题汇总

1什么是软件工程?基本原理有哪些?软件工程是指导计算机软件开发和维护的工程学科。

用分阶段的生命周期计划管理、坚持阶段评审、实行严格产品控制、采用现代设计技术、结果审查、开发小组人员少而精、并不断改进方法。

2成本_效益分析可用哪些指标进行度量?(写出公式)可用投资回收期、纯收入、投资回收率指标,通过P=F/(1+i)n计算求得。

3什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。

用符号描绘信息在系统中流动的情况,源点、终点、处理、数据存储、数据流。

4非渐增式测试与渐增式测试有什么区别?两种都用于集成测试。

渐增式是把下一个要测试的摸块同已经测试好的模块结合起来进行测试,每次增加一个模块。

非渐增式先分别测每个模块,再把所有模块按设计要求放在一起结合成所要的程序。

5试从基本符号和设计方法分析HC图与JACKSON图异同点答:HC图是面向DFD,而JACKSON图是面向数据结构的。

符号省略。

6软件测试的目的是什么?测试的目的是为了发现错误.7结构化程序设计的思想是什么?答:自上而下,逐步求精8请解释极限编程和自适应软件开发,并说明其异同?答:极限编程和自适应软件开发都属于敏捷过程模型。

极限编程是应用最广泛的敏捷过程(2分)。

按照计划、设计、编码和测试四个框架活动组织。

极限编程建议一系列新颖和有力的技术,保证敏捷团队创建能力体现客户指定优先级特征和功能的频繁软件开发(2分)。

自适应软件开发强调人的合作和团队的组织,按思考、协作和学习的三个框架活动组织,其使用迭代过程。

该过程由自适应循环计划、相对严格的需求收集方法和一个迭代开发循环构成(2分)。

9需求工程的起始阶段,需求工程师的主要工作是?答:需求工程的起始阶段,工程师的主要工作为:1)建立基本的问题需求(2分)2)定义最重要的项目约束以及陈述主要的特征和功能(2分)3)与共利益的各方建立基本的谅解(2分)10请画出“在餐厅使用信用卡付费”这一活动的完整用例图?11分析说明结构化分析和面向对象分析的区别?答:分析建模的目标是创建各种表现形式,以描述软件信息、功能和行为的需求(2分)。

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

软件工程简答题集锦1、为什么事务型软件的结构常常具有中间大两头小的形状?答:扇入高则上级模块多,能够增加模块的利用率;扇入低则表示下级模块的复杂性。

事务型软件常常具有中间大两头小的形状,具有良好的软件设计结构,瓮型结构。

说明它在底层模式中使用了较多高扇入共享模块。

2、什么是软件需求,可以从哪些方面描述软件需求?答:软件需求是指一个软件系统必须遵循的条件或具备的能力。

条件与能力:①系统为了解决问题或到达目的所具备的条件或能力,即系统的外部特性;②系统为了满足合同,标准或其他规定文档所具备的条件或能力,即系统的内部特性。

软件需求一般包含三个不同的层次:业务需求,用户需求,功能需求软件需求的特性:①功能性②可用性③可靠性④性能⑤可支持性⑥设计约束3、面向对象设计模型包含哪几个层次?主要内容?答:面向对象设计模型包含:①系统架构层。

描述整个系统的总体架构,使所设计的软件能够满足客户定义的需求,并完成支持客户需求的技术根底设施;②类和对象层。

使系统能从通用的方法创立并不断逼近特别需求,该层同时包含了每个对象的设计表示。

③消息层。

描述对象间的消息模型,它建立了系统的内部和外部接口,包含使得每个对象能够和其协作者通信的细节。

④责任层。

包含针对每个对象的全部属性和操作的数据结构和算法的设计。

4、多模块程序的测试有哪些层次?各层次主要解决什么问题?答:多模块测试有4个层次①单元测试:通过对象模块的静态分析和动态测试,使其代码到达模块说明的要求;②集成测试:把经过单元测试的模块逐步组成具有良好一致性的完整程序;③确认测试:确认组装完毕的程序是否满足软件需求规格说明书的要求;④系统测试:检查把确认测试合格的软件安装到系统之后,能否与系统中其余局部协调运行,并完成SRS的需求。

5、瀑布开发模式有哪些特点?存在的主要问题?如何改良?答:瀑布开发模型是一种基于软件生存周期的线性开发模型主要特点:①阶段间的顺序和依赖性;②推迟完成的观点;③保证质量的观点每个阶段都必须完成规定的文档,每个阶段都要对完成的文档进行复审,以便尽快发觉问题,排除隐患。

存在的问题:按照瀑布模型来开发软件,只有当分析员能够做出精确的需求分析时,才能得到预期的结果,不幸的是,由于多数用户不熟悉计算机,系统分析员对用户的专业也往往了解不深,因此很难在开发的初始阶段彻底弄清楚软件的需求。

为了解决这个问题,人们提出了“快速原型模型〞阶段:用户需求、需求分析、概要设计、详细设计、编码、测试、运行维护缺少:缺少灵敏性,无法解决需求不明确或不精确的问题。

由于用户不可能一次性提出全部的需求,而瀑布模型是一种线性开发模型,因此瀑布模型不能适应用户在开发后期提出的需求变更。

6、什么是软件危机?软件危机有什么表现?软件危机产生的原因?如何解决软件危机?软件危机是计算机软件开发、使用和维护过程所遇到的一系列严峻问题和难题,它包含两个局部:如何开发软件,以解决软件日益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机的表现:①对软件的开发本钱和进度的估算很不精确,常常出现实际本钱比估算本钱高出一个数量级,实际进度比方案进度拖延几个月甚至几年的时间,这些都降低了开发商的信誉,引起用户的不满。

②用户对已完成的软件不中意的情况时有发生;③软件产品的质量往往是不可靠的;④软件常常是不可维护的;⑤软件通常没有适当的文档资料,文档资料不全或不精确,使得软件开发和维护产生难以想象的问题和难以解决的难题;⑥软件开发和维护产生的费用占计算机系统总本钱的比例逐年上升;⑦开发软件的生产率往往跟不上计算机应用的普及速度。

软件危机的原因:①软件自身的原因:是逻辑部件,缺少可见性。

规模庞大、复杂,修改、维护苦难;②软件开发和维护的方法不当,无视需求分析,认为软件开发就是程序编写,轻视软件维护;③供求矛盾将是永恒的主题,面对日益增长的软件需求,人们显得力不从心。

7、什么是软件工程?软件工程是运用工程、科学和数学的原理和方法研制的、维护计算机软件和有关技术及治理方法。

把系统的、标准的、可度量的途径应用到软件开发、运行和维护的过程,也就是把工程应用于软件。

软件工程包含技术和治理两方面的内容,是技术和治理紧密结合形成的工程学科。

中心思想:是把软件当作一种工程化的方法和原理对软件进行方案、开发和维护个性化方法结构化方法面向对象方法软件复用过程式编程范型、面向对象编程范型、基于构件技术的编程范型8、什么是软件生存周期?软件生存周期是指一个软件从立项起,到废弃不用止,统称为软件的生存周期。

软件生存周期分为方案、开发和运行三个阶段由于软件生存周期被划分为多个较小的阶段,使得因为软件规模增长而大大增加的复杂性变得较易操纵和治理。

典型的软件生存周期:方案、需求分析、软件分析、软件设计、编码、软件测试、运行维护9、软件测试方法:软件测试方法分为静态测试和动态测试,静态测试是被测试程序不在机器上执行而采纳人工检测和计算机辅助静态分析手段对程序进行检测。

动态测试是通过运行程序发觉错误,对软件产品进行动态测试时可以采纳黑盒测试和白盒测试法。

黑盒测试法在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。

白盒测试法在不考虑软件的功能特性情况下进行测试。

软件测试目的:为了寻觅软件错误而运行程序的过程,目的是为了发觉程序中的错误。

任务是在计算机上运行程序,暴露出程序中潜在的错误。

10、衡量模块独立性的两个定性指标是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?内聚和耦合。

耦合是指不同模块之间相互依赖的紧密程度,内聚标志同一模块不同元素之间互相依存的紧密程度。

高内聚低耦合。

11、软件设计各层次功能?系统架构层:描述整个系统的整体架构。

使所设计的软件满足客户定义的需求,并完成支持用户需求的技术根底设施。

类和对象层:使系统能从通用的方法创立并不断逼近特别需求,同时包含了各对象的设计表示消息层:表示对象间的消息模型。

建立了系统的内部和外部接口,使得每个对象可以与其协作者通信。

责任层:包含针对每个对象的属性和操作的数据结构和算法的设计。

12.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?又有哪些缺少瀑布模型分为以下几个阶段:用户要求,需求分析,概要设计,详细设计,编码,测试和维护。

特点:阶段间具有顺序性和依赖性。

缺少;由于用户不可能一次提出全部需求,瀑布模型属于线性开发模型,因此瀑布模型不能适应用户在开发后期提出的需求变更,不适合大型工程开发。

13.简述软件测试的目的,任务和动态测试类型?软件测试是一个为了寻觅软件错误而运行程序的过程,目的是为了发觉软件中的错误。

软件测试的任务是通过在计算机上执行程序,暴露程序中潜在的错误,动态测试主要包含黑盒测试和白盒测试。

14.请指出UML类图中类之间除了聚合与组合之外的关系?组合和聚合又有什么区别和联系?类之间的关系:关联,依赖,继承,完成,组合,聚合聚合和组合的区别是:聚合:表示两个对象之间的整体和局部的弱关系,局部的生命周期可以超过整体组合:表示两个对象之间的整体和局部的强关系,局部的生命周期不能超越整体,或者说不能够脱离整体而存在。

聚合是一种特别的关联,组合又是特别的聚合15.什么是软件危机?为什么会产生软件危机?答:软件危机是指落后的软件生产方法无法满足迅速增长的软件需求,从而导致软件开发与维护过程中出现一系列问题现象。

原因主要有一,软件维护费用急剧上升,直接威胁计算机应用的扩大。

二。

,软件生产技术进步缓慢,16.什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差异在哪里?结构化程序设计的出现,使许多产业界认识到必须把软件生产从个人化方法改变为工程化。

采纳工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的治理技术和当前能够得到最好的技术方法结合起来,以经济的开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

17.什么是软件生存周期?把生存周期划分为阶段的目的是什么?答:软件生存周期划分为方案、开发和运行三个时期;把整个生存周期划分为较小的阶段,给每个阶段给予确定而有限的任务,就能够花间每一步工作内容,使因软件规模而增长而大大增加了软件复杂性得交易操纵和治理。

18传统的瀑布模型把生存周期划分为哪些阶段?瀑布模型软件开发有哪些特点?以及缺少?答:瀑布模型在编码以前安排了分析阶段和设计阶段;特点是阶段间具有顺序性和依赖性。

瀑布模型有以下缺少之处:1〕各个阶段划分完全固定,阶段之间产生大量的文档,极大的增加了工作量。

2〕由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。

3〕通过过多的强制完成日期和里程碑来跟踪各个工程阶段。

4〕瀑布模型的突出缺点是不适应用户需求的变化。

19 RUP是什么?试比拟RUP和XP的差异。

答:RUP〔Rational Unified Process,统一软件开发过程,统一软件过程〕是一个面向对象且基于网络的程序开发方法论。

RUP统一软件过程是描述软件开发中各个环节应该做什么,怎么做,什么时候做以及为什么要做,描述了以某种顺序完成的活动。

其在一个二维空间中描述软件开发活动,可以分为初始阶段,细化阶段,构造阶段和迁移阶段。

XP 极限过程是一个轻量级的,敏捷的软件开发方法,同时也是一个非常严谨和周密的方法。

它有四个价值观:交流,简单,反应和勇气。

20需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么〞,而不是“怎么做〞?答:需求分析主要有两个任务:1〕通过对问题及其环境的理解、分析和综合建立分析模型;2〕是在完全弄清用户对软件系统实在切要求的根底上,用‘软件需求规格说明书’把用户的需求表达出来。

需求分析的任务就是为了明确要开发的是一个刷马的系统,而不是怎么去完成这个系统。

21:UML类图中的六种关系,以及组合和聚合的区别与联系?泛化、完成、组合、聚合、关联、依赖;聚合关系表示整体与结构局部关系较弱,而组合比拟强;聚合关系中代表局部事物的对象与代表聚合事物的生存期无关,一旦删除了聚合对象不肯定删除了代表局部事物的对象。

组合中一旦删除了组合对象。

同时也就删除了代表局部事物的对象22.基于用例的面向对象的需求建模包含哪些步骤?1 画用例图2 写用例规约3 描述补充规约4编写术语表23.建立用例模型时,如何确定参与者和用例?什么是用例图?作用是什么?参与者泛指全部存在于系统外部并与系统交互的人、硬件或其他系统。

通俗的讲参与者主要是待开发系统的使用者。

确定参与者之后,可以根据参与者来确定系统的用例。

主要是考察各参与者需要系统提供什么样的效劳,或者说参与者是如何使用系统的。

相关文档
最新文档