软件工程导论解答题总结_软件工程导论知识总结
软件工程导论解答题总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程导论知识总结”。
1、什么叫软件:软件是计算机系统中鱼硬件相互依存的另一部分,它包括程序,数据以及其相关文档的完整集合。
2、什么是软件危机?软件危机的表现是什么?其产生的原因是什么?
软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,导致软件危机。软件危机表现在以下四个方面:(1)经费预算经常突破,完成时间一再拖延。(2)开发的软件不能满足用户要求。(3)开发的软件可维护性差。(4)开发的软件可靠性差。造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。
6)开发工具落后,生产率提高缓慢。
软件质量保证应做好哪几方面的工作:(1)采用技术手段和工具。(2)组织正式技术评审。(3)加强软件测试。(4)推行软件工程规范(标准)。(5)对软件的变更进行控制。
(6)对软件质量进行度量。
3、简述软件工程的概念:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
4、两种软件工程方法学开发软件时要建立哪些模型:软件工程方法学包括传统方法学和面向对象方法学。常用的开发模型有:瀑布模型,原型模型,增量模型,螺旋模型和喷泉模型。
5、软件过程模型有哪些?简述它们的特点:过程模型分为五大类:1.管理过程模型。2.瀑布模型。3.增量过程模型:包括增量模型、RAD模型。4.烟花过程模型:包括 原型开发模型、螺旋模型、协同开发模型。5.专用过程模型:包括 机遇构建的开发模型、形式化方法模型、面向方面的软件开发模型。
6、什么是软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个毛长的时期,通常把软件经历的这个漫长的时期成为生命周期。
7、软件生命周期有哪几个阶段和步骤:1.软件定义,包括问题定义可行性研究和需求分析。
2.开发时期包括:总体设计,详细设计,编码和单元测试,综合测试。3.维护时期。
8、计算机软件的开发经过哪三个大阶段:答:定义、开发、维护。
9、软件开发的各阶段的任务是什么:1.问题定义:关于规模和目标的报告书。2.可行性研究:系统的高层逻辑模型:数据流图,成本,效益分析3.需求分析:系统的逻辑模型:数据流图,数据字典,算法描述。4.总体设计:系统流程图,成本、效益分析。推荐的系统结构:层次图、结构图。5.详细设计:HIPO图或PDL图。6.编码和单元测试:综合测试方案、结果继承测试,验收测试,完整一直的软件配置。7.维护:包括改正性维护,适应性维护,完整性维护和预防性维护。
10、简述传统方法学软件设计的基本原理及内容。
原理:采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
内容:把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。采用生命周期方法学可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。
11、面向对象设计准则:1.模块化2.抽象3.信息隐藏4.弱耦合5.强内聚6.可重用
11、简述面向对象方法学的4个要点。
(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。
(2)把所有对象都划分成类。
(3)按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。
(4)对象彼此间仅能通过发送消息互相联系。
12、软件设计分哪两个阶段?总体设计的两个阶段分别是什么?答:分为总体设计和详细设计两个阶段。总体设计包括系统设计(划分出组成系统的程序、文件、数据库、人工过程和文档等物理元素)和结构设计(确定系统中每个程序是有哪些模块组成的,以及这些模块相互的联系,不设计模块内部算法流程。)
13、软件与硬件的区别是什么?答:软件是一种逻辑部件,而不是具体的物理部件。软件在开发、生产、使用和维护等方面与硬件有明显差异。1.软件是开发,硬件是制造。2.软件是自定的,硬件是组装的。3.软件不会磨损,硬件存在机械磨损问题。
14、简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则?
答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。
15、软件需求分析的任务是什么?雪球分析的任务是确定系统必须完成哪些工作,也就是对木匾系统提出完整、准确、清晰、具体的要求。一般来说,需求分析的任务包括下述几方面:
1.确定对系统的综合要求(主要有:功能要求、性能需求、巡行需求、将来可能提出的需求。)
2.分析系统的数据要求、3.到处系统的逻辑模型:数据流图、实体-联系图、状态转换图、数据字典、算法流程等4.修正系统开发计划。
16、瀑布模型与原型模型分别适用于开发哪些软件:瀑布模型适用于需求稳定,而且可以预先制定的大型系统工程项目。原型模型适合于需求模糊或者随时间变化的中小型项目。
17、数据流图的作用是什么?如何画数据流图?答:数据流图简称DFD,它是以特定的图形符号描述系统逻辑模型的工具;它从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的过程;它是开发人员与用户之间交流信息的通信工具;它也是系统分析与系统设计的工具。画法总结:1.先找出数据原点和汇点,它们是外部实体,由它们确定系统与外界的借口。2.找出外部实体的输出数据流与输入数据流,画出顶层数据流图。3.从顶层加工出发,逐步细化,画出所需子图。4.分析系统的主要处理功能,把每一个处理功能作为一个加工,并且确定它们之间的数据流入,流出关系,画出第一层数据流图。5.对流图中的每个加工进行细化,画出所需的子图,直到加工不需再分解为止。6.按照前面给出原则检查和修改每一层数据流图和子图。
18、什么叫数据字典?如何写数据字典?答:数据字典是描述数据流图中数据的信息的集合(描述内容包括:数据流图、状态转化图。E-R图中的数据信息(数据流、数据存储、外部实体)、控制星系等,不包括处理)如何写?数据元素的组合方式:顺序:即以确定的次序连接两个或多个分量。选择:即从两个或多个可能的元素中选取一个。重复:即把制定的分量重复零次或多次。
19、软件设计的原则有哪些?模块化、抽象与逐步求精、信息隐藏于局部化,模块独立。
20、耦合与内聚分别有哪些?如何定义?如何区分:耦合衡量图同模块彼此见相互依赖的紧密程度,内聚衡量一个模块内部各元素彼此结合的紧密程度。耦合的种类:数据耦合、标记耦合、控制耦合、公共耦合、内容耦合。内聚的种类:顺序内聚、通讯内聚、过程内聚、暂时内聚、逻辑内聚。
21、详细设计阶段用到了哪些图形工具?答:程序流程图(PFD)盒图(N-S)图 问题分析图(PAD)判定表/判定树图。
22、软件工程的启发式规则有哪些:A.当模块过大时就应该分解它。B.深度、宽度、扇出和扇入都应适当。C.对于任何一个内部存在判断调用的模块,它的判断作用的范围应该是其控制范围的一个自己。D.力争降低模块接口的复杂程度。E.设计单入口单出口的模块
23、模块的作用域与控制域分别指什么?答:模块的控制域:本身及其所有下级模块(包括直接和间接下级模块)。模块的作用域:受到该模块内一个判定影响的所有模块的集合。
24、模块的扇入、扇出、深度、宽度分别是什么意思:深度表示软件结构中控制的层----醋溜的标志一个系统的大小和复杂程度。模块的扇出指的是一个模块拥有的直属下级模块的个数,一般扇出数控制在7以内,平均为3或4。模块的扇入指的是一个模块的直接上级模块的个数。
软件测试的目的是什么?答:软件测试是为了发现错误而执行程序的过程;测试是程序的执行过程,目的在于发现错误;软件测试绝对不是要证明程序的正确性,也证明不了程序的正确性。
单元测试有那些内容?答:单元测试主要针对模块的以下五个基本特征进行测试:1.模块接口2.局部数据结构3.重要的执行路径4.错误处理5.边界条件
25、什么是集成测试?非渐增式和渐增式有什么区别?渐增式如何组装模块?(答案
26、什么是确认测试?该阶段有那些工作? 答:按照需求规格说明书中的确定指标对系统惊醒功能与性能的测试。进行明确测试(对照雪球规格说明书用黑河法进行测试)、软件配置检测。(文档的完整性,发现遗漏误及时补充和修改)
27、什么叫流图?如何画出流图?流图的环形复杂度如何计算? 答:流图是抽象化的程序流图,突出表现控制流,符号〇为流图的一个结点,表示一个或多个五分制语句。剪头为变,表示控制流的方向。在分支结构中,分支的汇聚处应由一个汇聚结点,每一条边必须终止与一个结点,结构判断中的条件表达式是有一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的符合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。根据程序内但条件分指数或循环个数来度量环形复杂度即程序的复杂度。V(G)=流图区域数 V(G)=变数-节点数+2 V(G)=单条件判定树+128、什么是黑盒测试法:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。
黑盒测试中,设计测试用例的五种方法:
1)等价类划分法;2)边界值分析法;3)错误推测法;4)因果图分析法;5)场景分析法。
29、白盒测试与黑盒测试分别有哪些测试方法?如何对具体问题测试?答:百合测试对程序模块的所有的执行路径至少测试一侧;对所有的逻辑判定,取“真“与取”假“的两种情况都至少测试一次;百合测试也叫逻辑覆盖法,包括:语句覆盖,判定覆盖,条件覆盖。黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。黑盒测试有等价类法和边界值分析法。
30、什么叫维护?维护的类型有哪些?答:软件维护就是在软件已经交付使用之后,为了改正错误或满足心的需求而修改软件的过程。类型有:1.该整形维护:对程序使用期间发现的程序错误进行诊断和改正的过程;占维护工作量的17-21%。2.适应性维护:配合变化了的环境进行修改软件的活动;占工作量的13-25%3.完整性维护:满足用户在使用过程中提出增加心的功能或修改以后功能的建议而进行的改进性工作;占工作量的50-66% 4.预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作;占维护工作的4%左右。
34、耦合性有哪几种类型? 其耦合度的顺序如何低:非直接耦合数据耦合 标记耦合控制耦合 外部耦合公共耦合 内容耦合 :高
31、UML中活动图、状态图、顺序图都分别描述什么?答:活动图强调的是从活动到活动的控制流,是一种表述过程机理、业务过程以及工作流的技术。它可以用来对业务过程,国祚流建立模型,也可以对用力实现甚至是程序实现来建模。状态机图常用来描述业务或软件系统中的对象在外部事件的作用下,对象的状态从一种状态到另一种状态的控制流。顺序图描述的是对象之间的消息发送关系,而不是类之间的关系。
31、UML中的事物有哪些:结构事物UML中的名词,它是模型的静态部分,描述概念或物理元素。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。注释事物:UML中的解释部分,和代码中的注视语句一样,是用来描述模型的。
32、用例图的作用是什么:用例图是外部参与者所能观察到的系统功能的模型图,由一组用例、参与者以及他们之间的关系组成。主要用于对系统、子类系统或类的功能行为惊醒建模。参与者是与系统交互的外部实体,可以是人,也可以是其他系统。用例是从用户的角度描述系统的行为,它将系统的功能描述成一系列时间,这些时间族中对参与者产生可观察结果。
33、UML中的关系有哪些:UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。
35、解释概念:
软件生存周期模型:描述软件开发过程中各种活动如何执行的模型
数据字典(DD):用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。内聚性:内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量
JSP方法:JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。多态性:指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。
36、简述容错技术的四种主要手段,并解释。
结构冗余:包括静态冗余、动态冗余和混合冗余。
信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。
冗余附加技术:指为实现上述冗余技术所需的资源和技术。
37、以G.J.Myers的观点,简述对软件测试的定义。
G.Myers给出了关于测试的一些规则,这些规则也可以看作是测试的目标或定义。
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
38、以G.J.Myers的观点,简述对软件测试的目的。
(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。
39、就程序设计语言的工程特性而言,对程序编码有哪些要求?
(1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性
40、模块的内聚性包括哪些类型?
偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚
41、列举出5个详细设计阶段的常用工具。
程序流程图,盒图,PAD图(问题分析图),判定表,判定树,过程设计语言,44、系统设计的内容是什么?
(1)系统分解。(2)确定并发性。(3)处理器及任务分配。(4)数据存储管理。(5)全局资源的处理。(6)选择软件控制机制。(7)人机交互接口设计。
42、可行性分析
经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
投资回收期:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。对应关系:即有直接因果关系在程序中可以同时处理。
结构冲突:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。
43、可行性研究报告的主要内容有哪些?
(1)引言:编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。
(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。
(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:说明项目能否开发;还需要什么条件才能开发;对项目目标有什么变动等。
44、迭代模型的四个阶段:(1)初始阶段。本阶段主要工作是确定系统的业务用况和定义项目的范围。(2)精化阶段。本阶段主要工作是分析问题域、细化产品定义,定义系统的构架并建立基线,为构建阶段的设计和实施工作提供一个稳定的基础。(3)构建阶段。本阶段主要工作是反复地开发,以完善产品,达到用户的要求。(4)产品化(移交)阶段。本阶段主要工作是将产品交付给用户,包括安装、培训、交付、维护等工作。
45、ISO9001与CMMI的联系与区别:两者的相同点是:CMMI和ISO9001标准都致力于质量和过程管理,都是为了解决同样的问题。两者的不同点是:(1)CMMI是动态的、开放的和持续改进的,它强调没有最好只有更好,强调不断改进,强调人在软件开发方面的主动性,非常适用于软件过程的改进。CMMI模型主要关注软件,它能解决“软件危机”这个世界性的问题。(2)ISO 9001是静态的质量控制,只要达到20个关键指标或过程,就能完成质量控制,它更适用于硬件制造行业和第三产业(服务行业)的质量控制。(3)CMMI与ISO9001的设计思路有差异:CMMI是“专用”,ISO9001是“通用”。ISO 9001不覆盖CMMI,CMMI也不完全覆盖ISO9001。
软件工程导论 第一章:软件工程学概论1.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。2.概括的说,软件危机包括两方面问题:如何开发软件已满足日益增长......
1.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计编码、测试、运行与维护阶段。2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件 和应用软件。3.可......
《软件工程导论》讲稿主讲教师:杨怀洲 邮箱:hzyang@xsyu.edu.cn电话:***第1章 软件工程学概述1.1软件危机1.1.1软件危机的介绍 1.1.2产生软件危机的原因图1.1引入同一......
计算机系统发展迅速,但是人们仍然没有彻底摆脱“软件危机”的困扰,软件已经成为限制计算机系统发展的瓶颈。计算机软件工程学就是为了研究如何消除软件危机而发展起来的。那么......
软件工程导论试题一.选择1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可......
