软件工程简答题——答案
软件工程问答题答案(仅供参考)(精品)
软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。
在软件工程领域,存在着许多关键问题和常见的问答题。
本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。
1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。
软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。
2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。
它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。
3. 请介绍软件测试的目的和重要性。
软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。
软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。
4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。
软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。
5. 请解释敏捷开发方法。
敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。
它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。
6. 请介绍软件项目管理的过程和技术。
软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。
它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。
7. 请解释软件工程中的代码重构。
代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。
软件工程考试题及答案
软件工程考试题及答案一、单项选择题(每题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. 软件工程的目标是开发出零缺陷的软件。
软件工程简答题——答案
38.就程序设计语言的工程特性而言,对程序编码有哪些要求?就程序设计语言的工程特性而言,对程序编码有如下要求:(1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性39.模块的内聚性包括哪些类型?模块的内聚性包括:(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚36.可行性研究报告的主要内容有哪些?解:一个可行性研究报告的主要内容如下:(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。
(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。
(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。
37.系统设计的内容是什么?解:系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
软件工程简答题答案-第五版
软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
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、典型的详细设计工具有流程图、盒图、、类程序设计语言。
问题反馈【教师释疑】正确答案:【PAD图】2、UML是一种语言。
问题反馈【教师释疑】正确答案:【可视化】3、类是一组具有属性、操作、关系和语义的对象的描述。
问题反馈【教师释疑】正确答案:【相同】4、对象是类的一个。
问题反馈【教师释疑】正确答案:【实例】5、用况图是一种表达系统模型的图形化工具。
问题反馈【教师释疑】正确答案:【功能】6、UML中的顺序图是一种交互图,即由一组对象以及按组织的对象之间的关系组成。
问题反馈【教师释疑】正确答案:【时序】7、模块的作用域是指受该模块内一个所影响的所有模块的集合。
问题反馈【教师释疑】正确答案:【判定】8、模块的控制域是指这个模块本身以及所有直接或间接它的模块的集合。
问题反馈【教师释疑】正确答案:【从属于】9、在数据流图中引入数据源和数据潭这两个术语的目的是为了表示系统的,可以使用它们和相关数据流来定义系统的。
问题反馈【教师释疑】正确答案:【环境|边界】10、模块结构图是系统的一个高层蓝图,允许设计人员在较高的层次上进行抽象思维。
模块结构图可用和两种形式来表示。
问题反馈【教师释疑】正确答案:【层次图|HIPO图】11、在设计模块结构图时要基于原则来设计模块。
问题反馈【教师释疑】正确答案:【高内聚低耦合】12、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“尽力使模块的在其控制域之内”。
问题反馈【教师释疑】正确答案:【作用域】13、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“力求深度、宽度、扇出和扇入”。
问题反馈【教师释疑】正确答案:【适中】14、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“改进软件结构,提高模块的”。
软件工程简答题及答案
软件工程简答题及答案软件工程试题整理_ 简答题1、可行性研究的任务是什么?首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。
然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。
从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。
㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。
㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。
一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。
如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点” 或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。
3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。
而渐增式测试往往把单元测试与集成测试和在一起,同时完成。
㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。
㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。
软件工程期末试卷简答题(答案)
软件⼯程期末试卷简答题(答案)软件⼯程简答1、软件和软件⽣存周期。
(什么是软件⽣存期。
)软件是能够完成预定功能和性能的可执⾏的计算机程序,包括使程序正常执⾏所需要的数据,以及有关描述程序操作和使⽤的⽂档。
(软件=程序+⽂档)软件⽣存周期:由软件定义、软件开发、运⾏维护3个时期组成,每个时期⼜进⼀步划分成若⼲阶段。
软件⽣存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
2、什么是软件危机?他有哪些典型的表现?产⽣的原因?软件危机是指计算机软件开发和维护过程中所遇到的⼀系列严重问题。
典型表现有:(1)对软件开发成本和进度的估计常常很不准确(2)软件产品的质量往往靠不住(3)⽤户对已完成的软件系统不满意的现象经常发⽣(4)软件常常是不可维护的(5)软件中没有适当的⽂档资料(6)软件成本在计算机系统总成本所占的⽐例逐年上升(成本上升)(7)软件开发⽣产率提⾼的速度,往往跟不上计算机应⽤迅速普及深⼊的趋势原因:(1)软件本⾝独有的特点,给开发和维护带来了困难(2)与软件开发和维护的⽅法不正确有关(3)程序只是完整软件的⼀个组成部分(4)轻视是⼀个最⼤的错误3、软件项⽬的质量管理制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进⾏评审,对最终软件产品进⾏确认,确保软件质量。
5、螺旋模型的适应场合有哪些?0104适应场合:⽀持需求不明确、特别是⼤型软件系统的开发,并⽀持⾯向规格说明、⾯向过程、⾯向对象等多种软件开发⽅法,是⼀种具有⼴阔前景的模型。
6.什么是软件过程?它与软件⼯程⽅法学有何关系?(1)软件过程是为了获得⾼质量软件所需要完成的⼀系列任务的框架,它规定了完成各项任务的⼯作步骤。
(2) 软件过程是软件⼯程⽅法学的3个重要组成部分之⼀。
(3) 软件⼯程⽅法学包含三个要素:⽅法、⼯具和过程。
7.简述软件设计的过程。
答:软件设计是把许多事物和问题抽象起来,并且抽象它们不同层次和⾓度,是将需求转变为软件陈述的过程,是迭代的过程。
软件工程—简答题
软件工程—简答题四、简答题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.什么是软件工程?请分析软件工程的目标是什么?答案:软件工程是:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;②对①中所选方法的研究”。
软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。
b)增强软件过程的可见性和可控性,保证软件的质量。
c)提高所开发软件的可维护性,降低维护费用。
d)提高软件开发生产率,及时交付使用。
e)合理预算开发成本,付出较低的开发费用。
2.什么是软件危机?软件危机表现在哪几个方面?由于软件特点和长期以来一直没有发明一种高效的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。
这种现象早在20世纪60年代被定义为“软件危机”。
它的具体表现如下:a)“已完成”的软件不满足用户的需求。
b)开发进度不能保障,交付时间一再拖延。
c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。
d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。
e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。
3.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?答案:对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。
4.根据你的理解,列举出职业化软件工程师要注意的三个主要问题,请给出理由。
答案:没有唯一答案。
a)不遵守标准和规范:职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。
最新软件工程考试题库(含答案和解析)
最新软件工程考试题库(含答案和解析)一、选择题1. 以下哪个不是软件工程的三个基本目标之一?A. 可维护性B. 可靠性C. 可用性D. 低成本答案:D解析:软件工程的三个基本目标是可维护性、可靠性和可用性。
低成本虽然也是一个重要的考虑因素,但并不是软件工程的基本目标。
2. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程答案:A解析:面向对象编程(OOP)通过将数据和操作数据的方法封装在一起,降低了软件复杂性,提高了代码的可重用性和可维护性。
3. 软件开发过程中,以下哪个阶段需要进行需求分析?A. 设计阶段B. 编码阶段C. 测试阶段D. 需求分析阶段答案:D解析:需求分析是软件开发过程中的第一个阶段,其主要任务是明确软件系统的功能、性能等需求。
4. 以下哪个软件工程方法主要关注软件项目的管理?A. 敏捷开发B. ScrumC. UMLD. 设计模式答案:B解析:Scrum 是一种敏捷开发方法,主要关注软件项目的管理和团队协作。
UML(统一建模语言)主要用于软件设计,设计模式主要用于解决软件设计中的常见问题。
5. 以下哪个软件工具主要用于版本控制?A. GitB. EclipseC. JiraD. Visual Studio答案:A解析:Git 是一款分布式版本控制系统,主要用于跟踪和管理软件开发过程中的代码变更。
二、填空题1. 软件工程的基本活动包括______、______、______和______。
答案:需求分析、设计、编码、测试2. 敏捷开发的核心价值观包括______、______、______、______和______。
答案:个体和互动、工作软件、客户协作、响应变化、持续交付3. 软件开发过程中,常用的设计模式包括______、______、______、______和______。
答案:工厂模式、单例模式、策略模式、装饰模式、观察者模式4. 软件测试的目的是______、______和______。
最新软件工程 简答题复习题(带答案)
第一章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. 什么是软件危机?其产生的原因是什么?答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。
致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。
软件危机主要表现在两个方面:(1) 软件产品质量低劣,甚至开发过程就夭折。
(2) 软件生产率低,不能满足需要。
4. 什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点?答:软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。
软件过程模型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又称为软件开发模型。
主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等。
⑴瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若干阶段,它简单易用,在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大的作用。
软件工程试题及答案(较详细)
软件工程试题及答案(较详细)软件工程试题及答案 (较详细)一、简答题1. 什么是软件工程?软件工程是一门综合应用计算机科学与工程学、管理学等知识的学科,它致力于开发和维护高质量的软件系统。
它包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件项目能够按时交付、高效运行,并满足用户需求。
2. 请解释什么是软件生命周期?软件生命周期是指软件从构思、开发、使用到废弃的整个过程。
它包括需求分析、设计、编码、测试、部署和维护等多个阶段。
软件生命周期管理的目标是确保软件产品按时、按质量要求交付,并提供后续的支持与维护。
3. 请解释什么是需求工程?需求工程是软件工程中的一个重要阶段,它主要涉及对用户需求的调研、分析、规划和文档化。
通过需求工程,开发人员能够更好地理解用户需求,并将其转化为具体的软件需求规格说明书,为后续的设计和开发提供基础。
4. 什么是软件设计模式?软件设计模式是一套在软件设计过程中重复出现的解决方案。
它们被广泛接受,并被认为是开发高质量、可维护和可扩展软件的有效方法。
常见的软件设计模式包括单例模式、工厂模式、观察者模式等。
二、分析题1. 请说明面向对象和面向过程的编程范式的区别。
面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式。
面向过程编程更侧重于任务的步骤和流程,它将问题分解为多个步骤,通过一系列函数或过程的调用来完成任务。
面向过程编程更加注重解决问题的步骤和执行过程。
面向对象编程更注重数据和对象的定义和封装,它将问题看作是一组对象的交互。
面向对象编程通过定义类、创建对象以及对象之间的协作来解决问题。
2. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它定义了软件系统中各个组件的职责、交互方式和部署方式。
常见的软件架构模式包括分层架构、客户端-服务器架构、微服务架构等。
3. 解释软件测试中的黑盒测试和白盒测试。
黑盒测试是一种测试方法,它基于对软件系统的功能需求进行测试,而不考虑内部的实现细节。
软件工程简答题
1、什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2、需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO 图和需求描述语言等。
3、什么是模块化?模块设计的准则?模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。
模块设计的准则:(1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3) 软件结构图的深度、宽度、扇入和扇出要适当。
一般模块的调用个数不要超过5个。
(4) 尽量降低模块接口的复杂程度;(5) 设计单入口、单出口的模块。
(6) 模块的作用域应在控制域之内。
4、详细设计的主要任务?编写软件的“详细设计说明书”.软件人员要完成的工作:(1) 为每一个模块确定采用的算法, 选择某种适当的工具表达算法的过程,写出模块的详细过程描述.(2) 确定每一模块使用的数据结构.(3) 确定模块结构的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节.(4) 为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试.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.软件危机的主要表现答案:(1)用户对“已完成的”软件系统不满意的现象经常发生。
(2)软件规模的增长,带来了它的复杂度的增加,软件故障难以检测。
(3)对于软件开发的成本和进度估计很不准确,大型软件开发费用经常超支,完成时间也经常超期(4)随着软件规模的增长,软件的可靠性在下降,质量保证也越来越困难(5)软件的可维护性差(6)软件通常没有适当的文档(7)软件开发的生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
(8)软件生产的技术进步缓慢(9)软件供不应求2.软件开发的方法有哪些?传统的软件工程和面向对象的软件工程3.消除软件危机的途径要有软件开发的方法和工具,又要有必要的组织管理。
软件工程正是从管理和技术两方面研究如何列好地开发和维护软件的一门学科。
4.产生软件危机的原因①对成本或进度估计不足②需求分析不够③质量不过关(通信技术不行)④不可维护⑤没有文档⑥开发速度慢⑦计算机系统总成本中的比例上升5.软件工程基本原理(1)用软件生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性6.软件工程方法学包括哪三个要素方法、工具和过程。
方法:是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具:是为方法的运用提供自动的或半自动的软件支撑环境;过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定7.为什么传统方法不能彻底消除软件危机①正确数据调用错误过程(模块、功能)②错误数据调用正确过程③设计修改,没有和合作者沟通④企业(服务、对象)发展(数据与功能分开存放)8.为什么面向对象方法能彻底消除软件危机:以人的思维方式为中心。
9.何为推迟实现的观点?编码开始的越早,完成所需要的时间反而越长10.软件工程生命周期模型有哪些:①传统方法:瀑布模式,快速原型,增量模型,螺旋模型②面向对象方法:喷泉模型11.瀑布模型的特点有哪些?1)阶段间的顺序性和依赖性2)推迟实现的观点3)质量保证的观点12.阶段间的顺序性与依赖性的含义顺序性有两重含义:第一,只有等前一阶段的工作完成以后,后一阶段的工作才能开始;第二,前一阶段的输出文档,就是后一阶段的输入文档。
软件工程 简答题复习题(带答案).doc
第一章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:00-18:30)。
38.就程序设计语言的工程特性而言,对程序编码有哪些要求?就程序设计语言的工程特性而言,对程序编码有如下要求:(1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性39.模块的内聚性包括哪些类型?模块的内聚性包括:(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚36.可行性研究报告的主要内容有哪些?解:一个可行性研究报告的主要内容如下:(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。
(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。
(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。
37.系统设计的内容是什么?解:系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
(4)数据存储管理。
系统中的内部数据和外部数据的存储管理是一项重要的任务。
通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。
必须确定全局资源,并且制定访问全局资源的策略。
全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。
分析模型中所有交互行为都表示为对象之间的事件。
系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计。
设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
38.什么是软件危机?软件危机的表现是什么?其产生的原因是什么?解:软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。
一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。
在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下四个方面:(1)经费预算经常突破,完成时间一再拖延。
由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。
主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。
由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。
(2)开发的软件不能满足用户要求。
开发初期对用户的要求了解不够明确,未能得到明确的表达。
开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。
(3)开发的软件可维护性差。
开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。
程序结构不好,运行时发现错误也很难修改,导致维护性差。
(4)开发的软件可靠性差。
由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。
造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用不断增加。
(4)软件开发技术落后。
(5)生产方式落后。
6)开发工具落后,生产率提高缓慢。
39.软件质量保证应做好哪几方面的工作?解:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:(1)采用技术手段和工具。
质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。
(2)组织正式技术评审。
在软件开发的每一个阶段结束时,都要组织正式的技术评审。
国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。
(3)加强软件测试。
软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。
(4)推行软件工程规范(标准)。
用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。
(5)对软件的变更进行控制。
软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。
(6)对软件质量进行度量。
即对软件质量进行跟踪,及时记录和报告软件质量情况。
[解析]软件的质量保证是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,是软件工程管理中的重要内容。
36 .何谓软件开发方法?请列举四种主要方法。
37 .从开发者角度进行程序质量的评审时,软件的结构包括哪些主要内容?38 .说明软件文档的作用。
39 .简述详细设计的基本任务。
简答题1.什么是软件工程?请分析软件工程的目标是什么?答案:软件工程是:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;②对①中所选方法的研究”。
软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。
b)增强软件过程的可见性和可控性,保证软件的质量。
c)提高所开发软件的可维护性,降低维护费用。
d)提高软件开发生产率,及时交付使用。
e)合理预算开发成本,付出较低的开发费用。
2.什么是软件危机?软件危机表现在哪几个方面?由于软件特点和长期以来一直没有发明一种高效的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。
这种现象早在20世纪60年代被定义为“软件危机”。
它的具体表现如下:a)“已完成”的软件不满足用户的需求。
b)开发进度不能保障,交付时间一再拖延。
c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。
d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。
e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。
3.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?答案:对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。
4.根据你的理解,列举出职业化软件工程师要注意的三个主要问题,请给出理由。
答案:没有唯一答案。
a)不遵守标准和规范:职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。
自从人们认识到软件危机以来,总结软件开发的失败教训和成功经验,并把它们总结成为最佳实践,进而形成标准,要充分利用这些最佳实践和标准来指导软件过程。
任何闭门造车、想当然的行为都是不被提倡的,注定要走弯路。
b)对待计划不严肃:软件工程强调计划性,计划的内容包括:设备资源、进度安排、人力资源、任务分配等等。
在项目的进行中要跟踪计划执行情况,记录计划执行过程中的偏差,对任何变更都要经过评审和批准才能付诸行动。
c)不主动与人沟通:软件不可见的特性,需要软件工程师进行大量书面的、口头的或面对面的沟通,沟通的目的是为了使相关的人员了解项目的进展、遇到的问题、应用的技术、采用的方法。
5.软件工程为什么要强调规范化和文档化?答案:软件工程强调规范化和文档化。
规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。
文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。
另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。
在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。
6.请简单说明结构化分析的主要步骤。
答案:根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO 图),实体关系图。
以初始数据流程图为基础,从数据流程图的输出端开始回溯。
在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。
对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。
系统分析人员与用户一起对需求分析的结果进行复查。
根据细化的需求修订开发计划。
编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。
7.设计类的属性时必须要定义是哪两项?答案:设计类的属性时必须要定义的内容:1)属性的类型:设计属性时必须要根据开发语言确定每个属性的数据类型,如果数据类型不够,设计人员可以利用已有的数据类型定义新的数据类型。