软件工程概论简答题
软件工程 各章 简答题
第一章绪论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工作台有哪些分类?。
软件工程概论简答题
一、概述1.软件工程过程有哪几个基本过程活动?试说明之。
解答:软件工程过程的基本过程活动有4步:·P (Plan) : 软件规格说明。
规定软件的功能及其运行的限制;·D (Do) : 软件开发。
产生满足规格说明的软件;·C (Check) : 软件确认。
确认软件能够完成客户提出的要求;·A (Action) : 软件演进。
为满足客户的变更要求,软件必须在使用的过程中演进。
2.试说明“软件生存期”的概念。
解答:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。
这就是软件的生存期。
它分为6个阶段:(1) 软件项目计划:在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。
根据有关成本与进度的限制分析项目的可行性。
(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。
可以用以下两种方式中的一种对需求进行分析和定义。
一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。
(3) 软件设计:软件的设计过程分两步走。
第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。
第二步做详细设计,考虑设计每一个模块部件的过程描述。
经过评审后,把每一个加细的过程性描述加到设计规格说明中去。
(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。
应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。
(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。
组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。
确认测试检查所有的需求是否都得到满足。
在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。
(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⼯具有PowerDesigner与Rational Rose等。
软件工程(简答题)
1、典型的详细设计工具有流程图、盒图、、类程序设计语言。
问题反馈【教师释疑】正确答案:【PAD图】2、UML是一种语言。
问题反馈【教师释疑】正确答案:【可视化】3、类是一组具有属性、操作、关系和语义的对象的描述。
问题反馈【教师释疑】正确答案:【相同】4、对象是类的一个。
问题反馈【教师释疑】正确答案:【实例】5、用况图是一种表达系统模型的图形化工具。
问题反馈【教师释疑】正确答案:【功能】6、UML中的顺序图是一种交互图,即由一组对象以及按组织的对象之间的关系组成。
问题反馈【教师释疑】正确答案:【时序】7、模块的作用域是指受该模块内一个所影响的所有模块的集合。
问题反馈【教师释疑】正确答案:【判定】8、模块的控制域是指这个模块本身以及所有直接或间接它的模块的集合。
问题反馈【教师释疑】正确答案:【从属于】9、在数据流图中引入数据源和数据潭这两个术语的目的是为了表示系统的,可以使用它们和相关数据流来定义系统的。
问题反馈【教师释疑】正确答案:【环境|边界】10、模块结构图是系统的一个高层蓝图,允许设计人员在较高的层次上进行抽象思维。
模块结构图可用和两种形式来表示。
问题反馈【教师释疑】正确答案:【层次图|HIPO图】11、在设计模块结构图时要基于原则来设计模块。
问题反馈【教师释疑】正确答案:【高内聚低耦合】12、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“尽力使模块的在其控制域之内”。
问题反馈【教师释疑】正确答案:【作用域】13、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“力求深度、宽度、扇出和扇入”。
问题反馈【教师释疑】正确答案:【适中】14、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“改进软件结构,提高模块的”。
软件工程—简答题
软件工程—简答题四、简答题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.软件⼯程是将系统的、规范的、可度量的⽅法(1分)应⽤于软件的开发、运⾏和维护的全过程及上述⽅法的研究。
(3分)4.软件维护是软件⽣存周期的最后⼀个阶段,所有活动都发⽣在软件交付并投⼊运⾏之后。
分)1计算机软件是与计算机系统操作有关的程序(1分)、规程、规则(1分)及任何与之有关的⽂档(1分)和数据(1分)。
2数据流图是以图形的⽅式描述数据在系统中流动和处理的过程。
只反映系统必须完成的逻辑功能,是⼀种功能模型。
3软件可维护性是指软件被理解、改正、调整和改进的难易程度(3分),是指导软件⼯程各个阶段⼯作的⼀条基本原则,也是软件⼯程追求的⽬标之⼀。
(1分)4软件测试:是对软件规格说明、软件设计和编码的最后复审(1分),⽬的是在软件产品交付之前尽可能发现软件中潜伏的错误。
(3分)1软件⽣命周期:软件产品从形成概念开始,经过开发(1分)、运⾏(使⽤)(1分)和维护(1分)直到退役(1分)的全过程称为软件⽣存周期,包括软件定义、开发、使⽤和维护三部分。
3. 协作图⽤于描述相互合作的对象间的交互关系(2分)和链接关系(2分)。
4. 软件重⽤是指在两次或多次不同的软件开发过程中(2分)重复使⽤相同或相似软件元素的过程。
(2分)2. 变换流:由输⼊﹑输出﹑变换(或称处理)三部分组成,是⼀顺序结构。
3.模块的耦合和内聚内聚:⼜称为块内联系,指模块内部各成分之间相互关联的程度,以⾼内聚为设计⽬标。
耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独⽴性越差,以低耦合为设计⽬标。
4.等价类划分:等价类的划分,是将输⼊数据按有效的或⽆效的划分成若⼲个等价类,测试每个等价类的代表值。
⽤少量有代表性的例⼦代替⼤量测试⽬的相同的例⼦,能有效地提⾼测试效率。
5. 预防性维护:为了提⾼软件的可维护性和可靠性⽽对软件进⾏的修改称为预防性维护。
2.事务流:它的某个加⼯,分离成许多发散的数据流,形成许多加⼯路径,并且根据输⼊值选择其中⼀个路径来执⾏。
软件工程简答题必考
1、什么是软件工程?它目标和内容是什么?软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。
软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程内容:包括开发技术和开发管理两个方面。
2、软件开发中有哪几种过程模型 ?哪些适用于面向对象的软件开发 ?软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。
其中喷泉模型、统一软件过程适用于面向对象的软件开发。
3、什么是结构分析方法?该方法使用什么描述工具 ?结构化分析:简称 SA,面向数据流进行数据分析的方法。
采用自顶向下逐层分解的分析策略。
顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
4、什么是软件概要设计?该阶段的基本任务是什么 ?把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。
称为概要设计或结构设计。
基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审5、软件维护有哪些内容?( 1 )校正性维护。
在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
( 2 )适应性维护。
为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。
( 3 ) 完善性维护。
为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
( 4 )预防性维护。
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
6、软件测试要经过哪些步骤 ?这些测试与软件开发各阶段之间有什么关系 ?软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。
(完整)软件工程简答题必考
(完整)软件工程简答题必考软件工程简答题必考软件工程是一门研究如何通过系统化的、规范化的、可度量的方法来构建和维护软件的学科。
它的目标是通过合理地应用工程的原理、方法和工具,控制软件开发的各个环节,保证软件的质量和进度,并提高开发效率和可维护性。
下面我们来探究一些软件工程的常见简答题,加深对该领域的理解。
1. 请解释什么是软件过程?软件过程是指在软件开发的整个生命周期中,按照一定的流程和方法进行的活动集合。
它包括需求分析、设计、编码、测试、发布和维护等阶段,并通过规范化的文档和工具来管理和支持这些活动。
通过软件过程,开发团队可以更加有效地组织和协调工作,确保软件开发按时、按质量地完成。
2. 请解释软件生命周期模型,并举例说明。
软件生命周期模型描述了软件开发和维护的不同阶段。
常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
例如,瀑布模型将软件开发划分为需求分析、设计、编码、测试和维护等阶段,每个阶段顺序进行,并且每个阶段结束后都有相应的文档。
这种模型适用于需求明确、变动较少的项目。
3. 请解释什么是软件需求工程?软件需求工程是指对软件需求进行系统化和规范化的管理过程。
它包括需求获取、需求分析与建模、需求验证与确认等活动。
软件需求工程旨在确保对用户需求的全面理解和准确描述,并将其转化为开发团队可以理解和实现的形式,以此为软件开发提供准确的目标和方向。
4. 请解释什么是软件设计原则,并举例说明。
软件设计原则是指为了提高软件系统的设计质量,而从实践中总结出来的一些指导原则。
常见的软件设计原则包括开闭原则、单一职责原则、里氏替换原则等。
例如,开闭原则要求软件系统对扩展开放,对修改关闭,通过模块化的设计,可以方便地添加新功能而不影响已有功能的正常运行。
5. 请解释什么是软件测试?软件测试是指对已经开发完成的软件系统进行验证和评估的过程。
它旨在发现软件系统中的错误和缺陷,以提高系统的质量和可靠性。
软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的级别和类型,针对不同的需求和目标进行。
软件工程简答题答案
简答题1.什么是软件工程?请分析软件工程的目标是什么?答案:软件工程是:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;②对①中所选方法的研究”。
软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。
b)增强软件过程的可见性和可控性,保证软件的质量。
c)提高所开发软件的可维护性,降低维护费用。
d)提高软件开发生产率,及时交付使用。
e)合理预算开发成本,付出较低的开发费用。
2.什么是软件危机?软件危机表现在哪几个方面?由于软件特点和长期以来一直没有发明一种高效的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。
这种现象早在20世纪60年代被定义为“软件危机”。
它的具体表现如下:a)“已完成”的软件不满足用户的需求。
b)开发进度不能保障,交付时间一再拖延。
c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。
d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。
e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。
3.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?答案:对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。
4.根据你的理解,列举出职业化软件工程师要注意的三个主要问题,请给出理由。
答案:没有唯一答案。
a)不遵守标准和规范:职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。
软件工程简答题
软件工程简答题1. 什么是软件工程?软件工程是一门通过系统化、规范化和量化的方法,来开发和维护软件系统的学科。
它关注软件开发全过程中的需求分析、设计、编码、测试和维护等环节,以提高软件质量、降低开发成本和缩短开发周期。
2. 软件工程有哪些基本原则?软件工程遵循以下基本原则:- 按照客户需求导向:软件工程过程应始终以满足客户需求为目标,并持续与客户进行合作和沟通。
- 适应性和灵活性:软件工程方法应当具备适应不同项目需求和灵活变化的能力。
- 风险管理:对项目风险进行有效的识别、评估和管理,以减少项目失败的可能性。
- 团队合作:软件开发需要各个角色之间的密切合作和协同努力。
- 不断改进和学习:软件工程过程应不断反思和改进,学习新的技术和方法,以提高开发效率和质量。
3. 解释软件生命周期模型。
软件生命周期模型是指软件从开始开发到退役的全过程,包括需求分析、设计、编码、测试、发布和维护等阶段。
常见的软件生命周期模型有瀑布模型、迭代模型、螺旋模型等。
- 瀑布模型:按照线性顺序依次进行需求分析、设计、编码、测试和维护等阶段,每个阶段产生的文档和成果是下一个阶段的输入。
- 迭代模型:迭代模型强调快速迭代开发,将软件开发过程划分为多个迭代周期,每个迭代周期内包含需求分析、设计、编码、测试等阶段。
每个迭代周期都会产生可工作的部分软件。
- 螺旋模型:螺旋模型采用风险驱动的迭代方式,每个迭代周期都会评估和处理风险,根据评估结果确定下一步的开发方向。
4. 请解释软件需求工程的概念和目标。
软件需求工程是软件工程中的一个重要领域,旨在确保软件开发过程中对需求进行全面、一致和可验证的规格说明。
其目标包括:- 理解和明确用户和利益相关者的需求。
- 确定需求的优先级和约束条件。
- 分析和定义需求的功能和非功能特性。
- 确保需求的一致性和完整性。
- 验证和验证需求的正确性和满足性。
- 管理和追踪需求变更。
5. 什么是软件验证和确认?软件验证是指通过评审、检查、演练和测试等手段,确认软件是否符合规定的需求和规格要求。
软件工程—简答题
软件工程—简答题软件工程是一门应用科学,致力于在软件开发的过程中有效地管理和控制软件项目。
它涵盖了软件开发生命周期的各个阶段,包括需求分析、设计、编码、测试和维护。
在本文中,我们将解答一些与软件工程相关的简答题。
1. 什么是软件工程?软件工程是一门将工程学原理和方法应用于软件开发过程的学科。
它关注软件开发项目的全面管理,包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件开发过程的高效性和质量。
2. 软件工程的目标是什么?软件工程的目标是通过应用工程原理和方法来开发高质量的软件产品。
它关注于提高软件开发过程的效率和质量,以满足用户需求,并在预算和时间限制下交付可靠的软件。
3. 软件生命周期是什么?软件生命周期是指软件从开始开发到最终退役的整个过程。
它包括需求定义、设计、编码、测试、部署和维护等阶段。
软件生命周期的每个阶段都有特定的任务和产物,确保软件开发过程的有序进行。
4. 什么是需求分析?需求分析是软件开发生命周期的第一步,它旨在收集、分析和定义用户对软件系统的需求。
通过与用户沟通和调研,确定软件系统的功能和性能要求,为后续的设计和开发工作奠定基础。
5. 什么是软件设计?软件设计是根据需求分析的结果,确定软件系统的整体结构、模块划分和算法设计的过程。
它涉及到软件架构设计、数据库设计、界面设计等方面,旨在确保软件系统的可扩展性、可维护性和性能等特性。
6. 什么是软件测试?软件测试是为了发现和修复软件系统中的缺陷和错误。
它通过设计和执行测试用例,验证软件系统的功能、性能和稳定性是否符合预期要求。
软件测试可以帮助开发团队提前发现和解决问题,提高软件质量。
7. 软件维护的目的是什么?软件维护是在软件发布后,对软件系统进行修改和改进的过程。
它旨在解决软件系统中出现的缺陷、改进功能以及应对环境变化等问题。
软件维护的目的是确保软件系统持续满足用户需求,并提供长期的支持和维护。
8. 软件配置管理的作用是什么?软件配置管理是对软件开发过程中的工件进行管理的一种方法。
软件工程简答题复习
简答题1、简述什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题绝不仅仅是“不能正常运行的”软件才具有的,实际上几乎所有软件都不同程度地存在这些问题。
主要表现,如: 对软件开发成本和进度估计不准确、软件产品的质量靠不住、用户对“已完成的”软件系统不满意、软件开发速度跟不上、软件不可维护以及没有适当的文档资料等。
2、简述软件质量保证的目标。
(1) 事前预防工作,例如,着重于缺陷预防而不是缺陷检查。
(2) 尽量在刚刚引入缺陷时即将其捕获,而不是让缺陷扩散到下一个阶段。
(3) 作用于过程而不是最终产品,因此它有可能会带来广泛的影响与巨大的收益(4) 贯穿于所有的活动之中,而不是只集中于一点。
3、简述螺旋模型的优缺点。
螺旋模型具有以下优点:(1) 设计上的灵活性,可以在项目的各个阶段进行变更。
(2) 以小的分段来构建大型系统,使成本计算变得简单容易。
(3) 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
(4) 随着项目推进,客户始终掌握项目的最新信息,从而使得客户能够和管理层有效地交互。
(5) 对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质作为软件开发的一个重要目标。
螺旋模型也存在以下缺点:螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险: 当项目实际上正在走向灾难时,开发人员可能还以为一切正常。
所以,很难让用户确信这种演化方法的结果是可以控制的。
4、哪些方法有助于提高软件的可理解性?以下方法都有助于提高软件的可理解性(1) 模块化(2) 详细的设计文档(3)结构化设计方法(4)程序内部的文档(5)良好的高级程序设计语言5、什么是单元测试?其内容包括哪些?单元测试又称为模块测试,是针对软件设计的最小单位一程序模块,进行正确性检验的测试工作,其目的在于发现各模块内部可能存在的各种差错。
软件工程简答题
软件工程简答题第一篇:软件工程简答题1.什么是软件工程?简述软件工程的七条基本原理。
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法来进行软件开发和维护的学科。
七条基本原理:用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。
2.什么是软件生存周期模型?请至少列举四种主要的模型。
软件生存周期模型是软件开发全部过程、活动和任务的结构框架。
它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。
四种主要的模型:瀑布模型,演化模型,喷泉模型,螺旋模型、基于构件的开发模型 3.为什么软件需要维护?简述软件维护的过程。
1)改正在特定使用条件下暴露出来的一些潜在程序错误或设计缺陷;2)因在软件使用过程中数据环境发生变化(如所要处理的数据发生变化)或处理环境发生变化(如硬件或软件操作系统等发生变化),需要修改软件,以适应这种变化;3)用户和数据处理人员在使用时常提出改进现有功能、增加新功能、以及改善总体性能的要求,为满足这些要求,需要修改软件。
软件维护的过程:首先建立维护的机构,申明提出维护申请报告的过程及评价的过程,为每一个维护申请规定标准的处理步骤,建立维护活动的记录保管,并规定复审的标准。
4.影响软件维护工作量的因素有哪些?1)系统大小。
系统越大,功能越复杂,理解掌握起来就越困难,需要的维护工作量越大。
2)程序设计语言。
使用功能强的程序设计语言可以控制程序的规模。
语言的功能越强,生成程序所需的指令数就越少;语言的功能越弱,实现同样功能所需的语句就越多,程序就越大,维护起来就越困难。
3)系统年龄。
老系统比新系统需要更多的维护工作量。
许多老系统在当初并未按照软件工程的要求进行开发,没有文档,或文档太少,或者在长期的维护中许多地方与程序不一致,维护起来困难较大。
4)数据库技术的应用。
软件工程导论简答题整理版
软件工程导论简答题整理版1. 什么是软件工程?软件工程是指通过系统性的、可量化的方法,对软件的开发、运行和维护进行管理,以提高软件质量和效率的学科。
2. 为什么需要软件工程?软件工程的出现是为了解决传统的软件开发方式中存在的问题,例如项目延期、质量低下和开发成本高等。
通过软件工程的方法和原则,可以规范开发过程,提高开发效率和质量。
3. 软件生命周期是什么?软件生命周期是指从软件开发开始到废弃的整个过程。
它包括需求分析、设计、编码、测试、部署和维护等阶段。
4. 什么是软件需求?软件需求是对软件系统功能、性能和其他特性的描述和规定。
它包括用户需求、系统需求和软件需求规格说明等。
5. 如何进行软件需求分析?软件需求分析是指对软件需求进行细化和明确,以便于后续的设计和开发工作。
可以通过访谈用户、观察业务流程和收集用户反馈等方式进行需求分析。
6. 什么是软件设计?软件设计是指根据软件需求,定义软件系统的结构、组件和接口等,以满足需求的功能和质量要求。
7. 软件设计有哪些原则?软件设计应遵循高内聚、低耦合、模块化、可重用、可维护等原则。
同时,还需要考虑软件的可靠性、可扩展性和性能等因素。
8. 软件测试的目的是什么?软件测试的目的是评估软件系统的质量和功能是否符合需求规格。
通过测试可以发现软件中的错误和缺陷,并促使其修复,以提高系统的稳定性和可靠性。
9. 软件测试方法有哪些?常见的软件测试方法包括黑盒测试、白盒测试和灰盒测试。
黑盒测试关注输入和输出,不关心内部实现;白盒测试关注程序内部结构和代码逻辑;灰盒测试结合了黑盒测试和白盒测试的思想。
10. 什么是软件配置管理?软件配置管理是指对软件配置项进行控制和管理,保证软件系统的可控性和可维护性。
它包括配置项的标识、变更控制、版本管理和发布管理等。
11. 什么是软件项目管理?软件项目管理是指对软件项目进行计划、组织、指导和控制,以达到项目的目标和要求。
它包括进度管理、质量管理、风险管理和团队管理等方面。
软件工程—简答题
软件工程—简答题1. 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可靠地开发和维护软件的学科。
它涉及到从需求分析开始,通过设计、编码、测试等阶段来创建高质量的软件产品。
2. 软件生命周期有哪些阶段?请详细描述每个阶段。
(1) 需求分析:在这个阶段中,收集并明确用户对于所需功能和性能方面的要求,并将其转换为具体而清晰的文档形式。
(2) 设计:根据需求分析产生一个或多个解决方案,在此基础上进行架构设计与模块划分,并制定相应的技术实现方案。
(3) 编码:根据设计结果使用合适语言进行代码编写,包括程序结构搭建以及算法实现等内容。
(4) 测试:对已经完成编码部署前后端联调运行环境检查是否符合预期效果, 广泛采取黑盒测试白盒测试灰度发布漏洞扫描压力测验等手法验证项目完整性.(5)交付/部署: 将最新版本的软件交付给用户,并进行部署和安装,确保其在目标环境中正常运行。
(6) 维护:对已经发布的软件进行故障修复、功能升级等维护工作。
3. 什么是需求分析?为什么它很重要?需求分析是指通过与客户沟通并收集信息来明确系统或产品所需要满足的功能、性能以及其他约束条件。
它非常重要,因为: - 定义了项目范围和目标;- 确定了开发方向和优先级;- 提供了一个基准用于评估最终结果是否符合预期;这些都有助于避免后期修改成本高昂且时间紧迫。
4. 软件测试包括哪些类型?请简述每种类型。
- 单元测试: 对代码中独立单元(如函数)进行验证,检查其逻辑正确性。
- 集成测试: 将多个模块组合起来,在整体上验证各个模块之间相互调用关系是否正确- 系统测试: 在完整而真实的操作环境下执行一系列针对整个系统功能、可靠性等特点设计出来全面有效地方法, 检验该软硬设备具备所有必须的功能.- 验收测试: 由用户或客户进行,以验证软件是否满足合同和需求规范中所定义的要求。
- 性能测试:通过模拟实际使用情况来评估系统在不同负载下的性能表现。
软件工程简答题及答案
软件工程试题整顿_简答题1、可行性研究旳任务是什么?首先需要进行概要旳分析研究,初步确定项目旳规模和目旳,确定项目旳约束和限制,把他们清晰地列举出来。
然后,分析员进行简要旳需求分析,抽象出该项目旳逻辑构造,建立逻辑模型。
从逻辑模型出发,通过压缩旳设计,探索出若干种可供选择旳重要处理措施,对每种处理措施都要研究它旳可行性,可从如下三个方面分析研究每种处理措施旳可行性。
㈠技术可行性:对要开发项目旳功能、性能、限制条件进行分析,确定在既有旳资源条件下,技术风险有多大,项目与否能实现。
㈡经济可行性:进行开发成本旳估算以及理解获得效益旳评估,确定要开发旳项目与否值得投资开发。
㈢社会可行性:要开发旳项目与否存在任何侵犯、阻碍等责任问题,要开发项目旳运行方式在顾客组织内与否行得通,既有管理制度、人员素质、操作方式与否可行。
2、什么是模块旳影响范围?什么是模块旳控制范围?他们之间应当建立什么关系?一种模块旳作用范围(或称影响范围)指受该模块内一种鉴定影响旳所有模块旳集合。
一种模块旳控制范围指模块自身以及其所有下属模块(直接或间接附属于它旳模块)旳集合。
一种模块旳作用范围应在其控制范围之内,且鉴定所在旳模块应在其影响旳模块在层次上尽量靠近。
假如再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响旳模块,将它下移到判断所在模块旳控制范围内”旳措施加以改善。
3、非渐增式测试与渐增式测试有什么区别?渐增式测试怎样组装模块?非渐增式测试与渐增式测试旳测试措施有如下区别:㈠非渐增式测试措施把单元测试和集成测试提成两个不一样旳阶段,前一阶段完毕模块旳单元测试,后一阶段完毕集成测试。
而渐增式测试往往把单元测试与集成测试和在一起,同步完毕。
㈡非渐增式需要更多旳工作量,由于每个模块都需要驱动模块和桩模块,而渐增式运用已测试过旳模块作为驱动模块或桩模块,因此工作量较少。
㈢渐增式可以较早旳发现接口之间旳错误,非渐增式最终组装是才发现。
软件工程习题解答
第一章软件工程概论一、填空题⑴ 软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)、及(C)的完整集合。
其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序员能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文材料。
①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表⑵ 开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。
软件工程中描述软件生存周期的瀑布类型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。
其中,设计阶段在管理上可以依次分成(C)和(D)两个步骤。
A:① 程序开发环境② 操作系统的资源管理功能③ 开发程序人员数量④ 计算机的并行处理能力B:① 需求分析②需求调查③可行性分析④问题定义C、D:① 方案设计② 代码设计③ 概要设计④ 数据设计⑤ 运行设计⑥ 详细设计⑦ 故障处理设计⑧ 软件体系结构设计⑶ 有人将软件的发展过程划分为四个阶段,第一阶段(20世纪50年代),称为程序设计的“原始时期”。
这时既没有(A),也没有(B),程序员只能用机器指令编写程序。
第二阶段(20世纪60年代),称为“基本软件期”。
出现了(A),并逐渐普及。
随着(B)的发展,编译技术也有较大的发展。
第三阶段(20世纪60年代末至70年代中期)称为“程序设计方法时代”。
这一时期,与硬件价格下降相反,软件开发费用急剧上升。
人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。
第四阶段(20世纪70年代中期至今),称为“软件工程”时期。
软件开发技术不再仅仅是程序设计技术,而是包括了软件开发的各个阶段。
如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。
A、B、C、D:① 汇编语言② 操作系统③ 虚拟存储器概念④ 高级语言⑤ 结构化程序设计⑥ 数据库概念⑦ 固件⑧ 模块化程序设计E、F、G:① 使用和维护② 兼容性的确认③ 完整性的确认④ 设计⑤ 需求定义⑥ 图像处理二、简答题⑴ 软件工程过程有哪几种基本活动,试加以说明。
软件工程简答题答案
简答题1.什么是软件工程?请分析软件工程的目标是什么?答案:软件工程是:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;②对①中所选方法的研究”。
软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。
b)增强软件过程的可见性和可控性,保证软件的质量。
c)提高所开发软件的可维护性,降低维护费用。
d)提高软件开发生产率,及时交付使用。
e)合理预算开发成本,付出较低的开发费用。
2.什么是软件危机?软件危机表现在哪几个方面?由于软件特点和长期以来一直没有发明一种高效的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。
这种现象早在20世纪60年代被定义为“软件危机”。
它的具体表现如下:a)“已完成”的软件不满足用户的需求。
b)开发进度不能保障,交付时间一再拖延。
c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。
d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。
e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。
3.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?答案:对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。
4.根据你的理解,列举出职业化软件工程师要注意的三个主要问题,请给出理由。
答案:没有唯一答案。
a)不遵守标准和规范:职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。
电大软件工程简答题参考
电大软件工程简答题参考(此处为文档内容,请根据需求编写)
1:软件工程概述
1.1 软件工程的定义
1.2 软件开发生命周期
1.3 软件工程的重要性
2:需求分析
2.1 用户需求收集
2.2 需求的规范化和分析
2.3 需求验证与确认
3:设计与架构
3.1 软件设计原则
3.2 结构化设计方法
3.3 面向对象设计方法
3.4 软件架构设计
4:编码与测试
4.1 编码规范与约定
4.2 编码技术与工具
4.3 单元测试与集成测试4.4 验收测试与系统测试5:软件质量保证
5.1 质量标准与度量
5.2 缺陷管理与跟踪
5.3 配置管理与版本控制5.4 过程改进与质量管理6:项目管理与团队协作
6.1 项目计划与进度管理6.2 风险管理与变更控制6.3 团队组织与沟通
6.4 软件工程中的法律问题7:软件维护与升级
7.1 软件维护类型与策略7.2 工具与技术支持
7.3 软件升级与演化
8:总结与展望
8.1 本文档回顾
8.2 软件工程未来发展趋势
8.3 总结与建议
附件:
- 用户需求文档
- 软件架构图
法律名词及注释:
- 版权:法律规定的享有著作权的权利人对其创作的作品拥有排他的权利。
- 商标:商标是标识商品来源的符号,用于区分同类商品来源的标识。
- 专利:专利是国家授予专利申请人创造性的发明、实用新型或外观设计的专有权。
- 保密协议:保密协议是双方或多方之间为了保护一方的机密信息而签订的协议。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、概述1.软件工程过程有哪几个基本过程活动?试说明之。
解答:软件工程过程的基本过程活动有4步:· P (Plan) : 软件规格说明。
规定软件的功能及其运行的限制;· D (Do) : 软件开发。
产生满足规格说明的软件;· C (Check) : 软件确认。
确认软件能够完成客户提出的要求;· A (Action) : 软件演进。
为满足客户的变更要求,软件必须在使用的过程中演进。
2.试说明“软件生存期”的概念。
解答:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。
这就是软件的生存期。
它分为6个阶段:(1) 软件项目计划:在这一步要确定软件工作围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。
根据有关成本与进度的限制分析项目的可行性。
(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。
可以用以下两种方式中的一种对需求进行分析和定义。
一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。
(3) 软件设计:软件的设计过程分两步走。
第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。
第二步做详细设计,考虑设计每一个模块部件的过程描述。
经过评审后,把每一个加细的过程性描述加到设计规格说明中去。
(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。
应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。
(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。
组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。
确认测试检查所有的需否都得到满足。
在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。
(6) 软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。
与软件维护相关联的那些任务依赖于所要实施的维护的类型。
3.试论述瀑布模型软件开发方法的基本过程,比较它的优点和缺点。
解答:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。
并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型为软件开发和软件维护提供了一种有效的管理图式。
根据这一图式制定开发计划、进行成本预算、组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。
瀑布模型的缺点是缺乏灵活性,特别无法解决软件需求本身不明确或不准确的问题。
这些问题的存在对软件开发会带来严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉。
面对这些情况,无疑需要进行返工或是不得不在维护中纠正需求的偏差。
但无论上述哪一种情况都必须付出高额的代价,并将为软件开发带来不必要的损失。
4.试说明演化模型软件开发方法的基本过程,比较它的优点和缺点。
解答:由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。
因此,可以先做试验开发,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。
通常把第一次得到的试验性产品称为“原型”。
演化模型从需求分析开始。
软件开发人员与用户一起定义待开发软件系统的总目标,定义需求,确定软件的工作围。
然后快速设计软件中对使用者可见部分的表示,进而建造原型,再让用户或客户评估原型,根据评估结果,修改和细化待开发软件系统的需求,使之满足用户的需求。
这个过程是一个迭代的过程。
演化模型的优点是:·演化模型能够得到更好的软件需求,它不仅能够处理模糊的需求,而且开发人员与用户可通过原型充分进行交流;·演化模型给用户提供了机会,以更改用户原来设想的不尽合理的最终系统;·演化模型使得开发出来的最终系统更容易维护,对用户更友好;·演化模型可以降低总的开发费用,缩短开发时间。
演化模型的缺点是:·对于开发人员不熟悉的领域,演化模型可能误导开发者把系统的次要部分当作主要框架,作出不切题的原型;·原型过快地收敛于需求集合,使得某些基本方面被忽视;·长期在原型环境下开发,只注意得到令人满意的原型,容易“遗忘”用户环境与实际客户环境之间的差别。
5、软件工程包括哪些基本要素?请简要说明这些要素及其作用。
答案要点:软件工程包括过程、方法和工具三个要素。
软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算开发高质量软件的目标;.软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等;. 软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。
现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境 CASE。
6. 软件与其他工程学科所产生的制品有什么根本区别?答案要点:(1)软件是人类思维和智能所延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;(2)软件具有不可见性,它是抽象的,形式化和逻辑化的。
(3)软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化;(4)软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。
7. 软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软件”含义的理解。
软件质量是软件产品与明确的和隐含的需求相一致的程度,它通常由一系列的质量特性来进行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。
例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、软件使用方便快捷、程序代码易于理解等,而“程序代码易于理解”往往是一种用户没有明确提出的需求,但却是影响软件演化的重要因素。
8. 某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统。
请设计一个适用于该系统开发的过程模型,并进一步描述该模型。
答案要点:假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过Internet 访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能。
从该系统的具体情况来看,系统的需比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发:系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶段,从而确定新系统的需求。
遗留系统分析:在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,选择重用原有的课程信息管理部分,重新开发选课部分,必要时适当修改系统需求,最终确定系统需求和总体结构。
设计开发阶段:开发人员进一步设计相关子系统,将原有的课程信息管理部分封装为子系统,重新开发学生选课子系统,并实现与外部付费系统的接口。
系统测试阶段:开发人员将所有子系统集成在一起,交给测试人员开始全面的功能测试和性能测试。
根据所报告的测试问题,开发人员调试和修改程序。
系统交付阶段:测试通过后,开发人员将系统及其相关文档交付用户验收。
四、需求分析四、问答题1、在软件需求分析时,首先建立当前系统的物理模型,再根据物理模型建立当前系统的逻辑模型。
试问:什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?解答:所谓当前系统可能是需要改进的某个已在计算机上运行的数据处理系统,也可能是一个人工的数据处理过程。
当前系统的物理模型客观地反映当前系统实际的工作情况。
但在物理模型中有许多物理的因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的因素,去掉那些非本质的因素即可获得反映系统本质的逻辑模型。
所以当前系统的逻辑模型是从当前系统的物理模型抽象出来的。
2、可行性研究主要研究哪些问题?试说明之。
解答:可行性研究主要做4个方面的研究:经济可行性:进行成本∕效益分析。
从经济角度判断系统开发是否“合算”。
技术可行性:进行技术风险评价。
从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。
法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。
方案的选择:评价系统或产品开发的几个可能的候选方案。
最后给出结论意见。
3、数据流图的作用是什么?它有哪些基本成份数据流图的基本成份有4种:4、Petri网可以描述计算机软件系统的执行。
现有一个程序如下(类似于Pascal语言)L : S1;WHILE P1 DOBEGINIF P2 THEN S2ELSE S3;COBEGINS4;S5;S6;COENDEND;GOTO L;其中,P1和P2为逻辑表达式,S1,S6是单个执行语句,COBEGIN 和COEND是并行执行开始和并行执行结束(即S4,S5和S6语句并行执行)。
试用Petri网描述这段程序的执行过程解答:采用条件∕事件网(C∕E网,C―Condition, E―Event)式Petri网。
其定义如下:①当事件e激发时条件c开始成立,则称c是e的后继。
此关系用“”表示;②当事件e激发时条件c消失成立,则称c是e的前驱。
此关系用“”表示;③当事件e激发时条件c不受影响,则c和e之间没有前驱、后继关系,无边。
根据定义,给定程序的C∕E网如下:5、软件需求分析说明书主要包括哪些容?解答:软件需求规格说明是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。
软件需求规格说明的框架如下:6. 需求工程包括哪些基本活动?每一项活动的主要任务是什么?答案要点:需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。
这些基本活动的主要任务包括:(1)需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。