您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 64软件工程作业题(附答案)
软件工程作业题简答题1、什么叫软件?答:软件是计算机系统中鱼硬件相互依存的另一部分,它包括程序,数据以及其相关文档的完整集合。2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?答:软件危机实质在计算机软件的开发和维护过程中所欲遇到的一系列严重问题。包含如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有的软件两点。产生原因:1.与软件本身的特点有关,软件不是逻辑部件,它不具有“可见性”,在写出的程序运行之前,软件开发的进展情况很难衡量,软件的质量也较难评测;此外软件在运行过程中如果发现了错误,很可能遇到一个在开发时期引入的在测试阶段没能检测出来的错误。2.软件开发与维护的方法不正确也导致软件危机的产生。3、什么叫软件工程?答:1993年IEEE给出了一个全面具体的定义:软件工程是1.把系统的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程应用于软件;2.研究1中提到的途径。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.软件不会磨损,硬件存在机械磨损问题。12、软件需求分析的任务是什么?雪球分析的任务是确定系统必须完成哪些工作,也就是对木匾系统提出完整、准确、清晰、具体的要求。一般来说,需求分析的任务包括下述几方面:1.确定对系统的综合要求(主要有:功能要求、性能需求、巡行需求、将来可能提出的需求。)2.分析系统的数据要求、3.到处系统的逻辑模型:数据流图、实体-联系图、状态转换图、数据字典、算法流程等4.修正系统开发计划。13、瀑布模型与原型模型分别适用于开发哪些软件?答:瀑布模型适用于需求稳定,而且可以预先制定的大型系统工程项目。原型模型适合于需求模糊或者随时间变化的中小型项目。14、数据流图的作用是什么?如何画数据流图?答:数据流图简称DFD,它是以特定的图形符号描述系统逻辑模型的工具;它从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的过程;它是开发人员与用户之间交流信息的通信工具;它也是系统分析与系统设计的工具。画法总结:1.先找出数据原点和汇点,它们是外部实体,由它们确定系统与外界的借口。2.找出外部实体的输出数据流与输入数据流,画出顶层数据流图。3.从顶层加工出发,逐步细化,画出所需子图。4.分析系统的主要处理功能,把每一个处理功能作为一个加工,并且确定它们之间的数据流入,流出关系,画出第一层数据流图。5.对流图中的每个加工进行细化,画出所需的子图,直到加工不需再分解为止。6.按照前面给出原则检查和修改每一层数据流图和子图。15、什么叫数据字典?如何写数据字典?答:数据字典是描述数据流图中数据的信息的集合(描述内容包括:数据流图、状态转化图。E-R图中的数据信息(数据流、数据存储、外部实体)、控制星系等,不包括处理)如何写?数据元素的组合方式:顺序:即以确定的次序连接两个或多个分量、例如A+B。选择:即从两个或多个可能的元素中选取一个。例如:【A|B】重复:即把制定的分量重复零次或多次。例如:1{A}5可选:即一个分量是可有可无的例如(A)16、软件设计的原则有哪些?模块化、抽象与逐步求精、信息隐藏于局部化,模块独立。17、耦合与内聚分别有哪些?如何定义?如何区分?答:耦合衡量图同模块彼此见相互依赖的紧密程度,内聚衡量一个模块内部各元素彼此结合的紧密程度。耦合的种类:数据耦合、标记耦合、控制耦合、公共耦合、内容耦合。内聚的种类:顺序内聚、通讯内聚、过程内聚、暂时内聚、逻辑内聚。18、详细设计阶段用到了哪些图形工具?答:程序流程图(PFD)盒图(N-S)图问题分析图(PAD)判定表/判定树图。19、软件工程的启发式规则有哪些?答:A.当模块过大时就应该分解它,一般按照鬼能分解到成为一个小的功能单一的模块为止。一般一个模块内包含的语句在30-50条左右比较好(指高级语言)。分析后不应该降低模块的独立性。B.深度、宽度、扇出和扇入都应适当。好的设计结构通常是顶层扇出比较高,中层扇出比较少,底层扇入到公共的使用模块中去(底层模块有高扇入)模块的独立性是贯穿始终的标准,不能为了追求其他目标而违背独立性标准。C.对于任何一个内部存在判断调用的模块,它的判断作用的范围应该是其控制范围的一个自己。存在判断调用的模块,所在层次不用与那些属于判断作用的范围的模块所在的层次相隔的太远,应该是越近越好。D.力争降低模块接口的复杂程度,模块接口复杂是软件发生错误的一个主要原因,应该仔细设计模块几口,似的信息传递简单并且和模块的功能一直。接口复杂或不一致,是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。E.设计单入口单出口的模块:防止出现内容耦合—多入口(多种处理功能)以为着内容耦合。F.模块功能应该可以预测—模块是黑盒子,输入相同则输出相同,其内部数据结构和接口收到限制。模块的功能应该能够预测,但也要防止模块功能过分局限。过分局限将导致模块灵活性太差,会出现使用现场的修改。20、模块的作用域与控制域分别指什么?答:模块的控制域:本身及其所有下级模块(包括直接和间接下级模块)。模块的作用域:受到该模块内一个判定影响的所有模块的集合。21、模块的扇入、扇出、深度、宽度分别是什么意思?答:深度表示软件结构中控制的层----醋溜的标志一个系统的大小和复杂程度。模块的扇出指的是一个模块拥有的直属下级模块的个数,一般扇出数控制在7以内,平均为3或4。模块的扇入指的是一个模块的直接上级模块的个数。22、软件测试的目的是什么?答:软件测试是为了发现错误而执行程序的过程;测试是程序的执行过程,目的在于发现错误;软件测试绝对不是要证明程序的正确性,也证明不了程序的正确性。23、单元测试有那些内容?答:单元测试主要针对模块的以下五个基本特征进行测试:1.模块接口2.局部数据结构3.重要的执行路径4.错误处理5.边界条件24、什么是集成测试?非渐增式和渐增式有什么区别?渐增式如何组装模块?(答案不太明确,树上156页有。25、什么是确认测试?该阶段有那些工作?答:按照需求规格说明书中的确定指标对系统惊醒功能与性能的测试。进行明确测试(对照雪球规格说明书用黑河法进行测试)、软件配置检测。(文档的完整性,发现遗漏误及时补充和修改)26、什么叫流图?如何画出流图?流图的环形复杂度如何计算?答:流图是抽象化的程序流图,突出表现控制流,符号〇为流图的一个结点,表示一个或多个五分制语句。剪头为变,表示控制流的方向。在分支结构中,分支的汇聚处应由一个汇聚结点,每一条边必须终止与一个结点,结构判断中的条件表达式是有一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的符合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。根据程序内但条件分指数或循环个数来度量环形复杂度即程序的复杂度。V(G)=流图区域数V(G)=变数-节点数+2V(G)=单条件判定树+127、白盒测试与黑盒测试分别有哪些测试方法?如何对具体问题测试?答:百合测试对程序模块的所有的执行路径至少测试一侧;对所有的逻辑判定,取“真“与取”假“的两种情况都至少测试一次;百合测试也叫逻辑覆盖法,包括:语句覆盖,判定覆盖,条件覆盖。黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。黑盒测试有等价类法和边界值分析法。28、软件测试的步骤有哪些?每个测试阶段的测试依据是什么?分别有谁来测试?(找不到答案,谁知道怎么答在群里共享一下呗。29、什么叫维护?维护的类型有哪些?答:软件维护就是在软件已经交付使用之后,为了改正错误或满足心的需求而修改软件的过程。类型有:1.该整形维护:对程序使用期间发现的程序错误进行诊断和改正的过程;占维护工作量的17-21%。2.适应性维护:配合变化了的环境进行修改软件的活动;占工作量的13-25%3.完整性维护:满足用户在使用过程中提出增加心的功能或修改以后功能的建议而进行的改进性工作;占工作量的50-66%4.预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作;占维护工作的4%左右。30、UML中活动图、状态图、顺序图都分别描述什么?答:活动图强调的是从活动到活动的控制流,是一种表述过程机理、业务过程以及工作流的技术。它可以用来对业务过程,国祚流建立模型,也可以对用力实现甚至是程序实现来建模。状态机图常用来描述业务或软件系统中的对象在外部事件的作用下,对象的状态从一种状态到另一种状态的控制流。顺序图描述的是对象之间的消息发送关系,而不是类之间的关系。31、UML中的事物有哪些?答:结构事物UML中的名词,它是模型的静态部分,描述概念或物理元素。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。注释事物:UML中的解释部分,和代码中的注视语句一样,是用来描述模型的。32、面向对象的基本概念类、对象、封装、继承等定义是什么?答:(这个容易吧。不打字了,累…..体谅211页有详细内容。33、用例图的作用是什么?答:用例图是外部参与者所能观察到的系统功能的模型图,由一组用例、参与者以及他们之间的关系组成。主要用于对系统、子类系统或类的功能行为惊醒建模。参与者是与系统交互的外部实体,可以是人,也可以是其他系统。用例是从用户的角度描述系统的行为,它将系统的功能描述成一系列时间,这些时间族中对参与者产生可观察结果。34、UML中的关系有哪些?答:UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。35、UML中实现关系、依赖关系、泛化关系等符号?答:(这个不会输入。…..36、用例、活动、状态、节点等图形符号分别是什么?(继续不会输入………填空1、画出UML中依赖关系的图形
本文标题:64软件工程作业题(附答案)
链接地址:https://www.777doc.com/doc-5324708 .html