2019年软件工程简答题集锦.doc

上传人:scccc 文档编号:12501725 上传时间:2021-12-04 格式:DOC 页数:39 大小:568KB
返回 下载 相关 举报
2019年软件工程简答题集锦.doc_第1页
第1页 / 共39页
2019年软件工程简答题集锦.doc_第2页
第2页 / 共39页
2019年软件工程简答题集锦.doc_第3页
第3页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2019年软件工程简答题集锦.doc》由会员分享,可在线阅读,更多相关《2019年软件工程简答题集锦.doc(39页珍藏版)》请在三一文库上搜索。

1、软件工程简答题集锦1、为什么事务型软件的构造常常具有中间大两头小的形状?答:扇入高那么上级模块多,能够增加模块的利用率;扇入低那么表示下级模块的复杂性。事务型软件常常具有中间大两头小的形状,具有良好的软件设计构造, 瓮型构造。说明它在底层模式中使用了较多高扇入共享模块。2、什么是软件需求,可以从哪些方面描述软件需求?答:软件需指一个软件系统必须遵循的条件或具备的能力。条件与能力:系统为了解决问题或到达目的所具备的条件或能力,即系统的外部特性; 系统为了满足合同,规或其他规定文档所具备的条件或能力,即系统的部特性。软件需求一般包括三个不同的层次:业务需求,用户需求,功能需求软件需求的特性:功能性

2、可用性可靠性性能可支持性设计约束3、面向对象设计模型包含哪几个层次?主要容?答:面向对象设计模型包含: 系统架构层。描述整个系统的总体架构,使所设计的软件能够满足客户定义的需求,并实现支持客户需求的技术根底设施; 类和对象层。使系统能从通用的方式创立并不断逼近特殊需求,该层同时包含了每个对象的设计表示。 消息层。描述对象间的消息模型,它建立了系统的部和外部接口,包含使得每个对象能够和其协作者通信的细节。 责任层。包含针对每个对象的所有属性和操作的数据构造和算法的设计。4、多模块程序的测试有哪些层次?各层次主要解决什么问题?答:多模块测试有4个层次 单元测试:通过对象模块的静态分析和动态测试,使

3、其代码到达模块说明的要求; 集成测试:把经过单元测试的模块逐步组成具有良好一致性的完整程序; 确认测试:确认组装完毕的程序是否满足软件需求规格说明书的要求; 系统测试:检查把确认测试合格的软件安装到系统之后,能否与系统中其余局部协调运行,并实现SRS的需求。5、瀑布开发模式有哪些特点?存在的主要问题?如何改良?答:瀑布开发模型是一种基于软件生存周期的线性开发模型主要特点:阶段间的顺序和依赖性; 推迟实现的观点; 保证质量的观点每个阶段都必须完成规定的文档,每个阶段都要对完成的文档进展复审,以便尽快发现问题,消除隐患。存在的问题:按照瀑布模型来开发软件, 只有当分析员能够做出准确的需求分析时,才

4、能得到预期的结果,不幸的是,由于多数用户不熟悉计算机,系统分析员对用户的专业也往往了 解不深,因此很难在开发的初始阶段彻底弄清楚软件的需求。为了解决这个问题, 人们提出了“快速原型模型阶段:用户需求、需求分析、概要设计、详细设计、编码、测试、运行维护缺乏:缺乏灵活性,无法解决需求不明确或不准确的问题。由于用户不可能一次性提出所有的需求,而瀑布模型是一种线性开发模型,因此瀑布模型不能适应用户在开发后期提出的需求变更。6、什么是软件危机?软件危机有什么表现?软件危机产生的原因?如何解决软件危机?软件危机是计算机软件开发、使用和维护过程所遇到的一系列严重问题和难题,它包含两个局部:如何开发软件,以解

5、决软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机的表现: 对软件的开发本钱和进度的估算很不准确,常常出现实际本钱比估算本钱高出一个数量级,实际进度比方案进度拖延几个月甚至几年的时间,这些都降低了开发商的信誉,弓I起用户的不满。 用户对已完成的软件不满意的情况时有发生; 软件产品的质量往往是不可靠的; 软件常常是不可维护的; 软件通常没有适当的文档资料,文档资料不全或不准确, 使得软件开发和维护产生难以想象的问题和难以解决的难题; 软件开发和维护产生的费用占计算机系统总本钱的比例逐年上升; 开发软件的生产率往往跟不上计算机应用的普及速度。软件危机的原因: 软件自身的原因:是逻辑部件

6、,缺乏可见性。规模庞大、复杂,修改、维护苦难; 软件开发和维护的方法不当,无视需求分析,认为软件开发就是程序编写, 轻视软件维护; 供求矛盾将是永恒的主题,面对日益增长的软件需求,人们显得力不从心。7、什么是软件工程?软件工程是运用工程、科学和数学的原理和方法研制的、维护计算机软件和有关技术及管理方法。把系统的、规的、可度量的途径应用到软件开发、运行和维护的过程,也就是把工程应用于软件。软件工程包括技术和管理两方面的容,是技术和管理严密结合形成的工程学科。中心思想:是把软件当作一种工程化的方法和原理对软件进展方案、开发和维护个性化方法构造化方法面向对象方法软件复用过程式编程型、面向对象编程型、

7、基于构件技术的编程型8、什么是软件生存周期?软件生存周期是指一个软件从立项起,到废弃不用止,统称为软件的生存周期。软件生存周期分为方案、开发和运行三个阶段由于软件生存周期被划分为多个较小的阶段,使得因为软件规模增长而大大增加的复杂性变得较易控制和管理。典型的软件生存周期:方案、需求分析、软件分析、软件设计、编码、软件测试、运行维护9、软件测试方法:软件测试方法分为静态测试和动态测试,静态测试是被测试程序不在机器上执行而采用人工检测和计算机辅助静态分析手段对程序进展检测。动态测试是通过运行程序发现错误,对软件产品进展动态测试时可以采用黑盒测试和白盒测试法。黑盒测试法在完全不考虑软件的部构造和特性

8、的情况下, 测试软件的外部特性。 白盒测试法在不考虑软件的功能特性情况下进 展测试。软件测试目的:为了寻找软件错误而运行程序的过程,目的是为了发现程序中的错误。任务是在计算机上运行程序,暴露出程序中潜在的错误。10、衡量模块独立性的两个定性指标是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?聚和耦合。耦合是指不同模块之间相互依赖的严密程度,聚标志同一模块不同元素之间互相依存的严密程度。高聚低耦合。11、软件设计各层次功能?系统架构层:描述整个系统的整体架构。使所设计的软件满足客户定义的需求,并实现支持用户需求的技术根底设施。类和对象层:使系统能从通用

9、的方式创立并不断逼近特殊需求,同时包含了各对象的设计表示消息层:表示对象间的消息模型。建立了系统的部和外部接口,使得每个对象可以与其协作者通信。责任层:包含针对每个对象的属性和操作的数据构造和算法的设计。12、传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?又有哪些缺 乏瀑布模型分为以下几个阶段:用户要求,需求分析,概要设计,详细设计,编码,测试和维护。特点:阶段间具有顺序性和依赖性。缺乏;由于用户不可能一次提出所有需求,瀑布模型属于线性开发模型,因此瀑布模型不能适应用户在开发后期提出的需求变更,不适合大型工程开发。13. 简述软件测试的目的,任务和动态测试类型?软件测试是一

10、个为了寻找软件错误而运行程序的过程,目的是为了发现软件中的错误。软件测试的任务是通过在计算机上执行程序,暴露程序中潜在的错误, 动态测试主要包括黑盒测试和白盒测试。14. 请指出UML类图中类之间除了聚合与组合之外的关系?组合和聚合又有什么区别和联系?类之间的关系:关联,依赖,继承,实现,组合,聚合聚合和组合的区别是:聚合:表示两个对象之间的整体和局部的弱关系,局部的生命周期可以超过整体组合:表示两个对象之间的整体和局部的强关系,局部的生命周期不能超越整体,或者说不能够脱离整体而存在。聚合是一种特殊的关联,组合又是特殊的聚合15. 什么是软件危机?为什么会产生软件危机?答:软件危机是指落后的软

11、件生产方式无法满足迅速增长的软件需求,从而导致软件开 发与维护过程中出现一系列问题现象。原因主要有一,软件维护费用急剧上升,直接威胁计算机应用的扩大。二。,软件生产技术进步缓慢,16 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差异在哪里? 构造化程序设计的出现,使许多产业界认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到最好的技术方法结合起来,以经济的开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。17什么是软件生存周期?把生存周期划分为阶段的目的是什么?

12、答:软件生存周期划分为方案、开发和运行三个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够花间每一步工作容,使因软件规模而增长而大大增加了软件复杂性得交易控制和管理。18传统的瀑布模型把生存周期划分为哪些阶段?瀑布模型软件开发有哪些特点?以及缺乏?答:瀑布模型在编码以前安排了分析阶段和设计阶段;特点是阶段间具有顺序性和依赖性。瀑布模型有以下缺乏之处:1各个阶段划分完全固定,阶段之间产生大量的文档,极大的增加了工作量。2丨由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了 开发风险。3丨通过过多的强制完成日期和里程碑来跟踪各个工程阶段。4瀑布

13、模型的突出缺点是不适应用户需求的变化。19 RUP 是什么? 试比拟RUP和XP的差异。答:RUP Rational Unified Process,统一软件开发过程,统一软件过程是一个面向对象且基于网络的程序开发方法论。RUP统一软件过程是描述软件开发中各个环节应该做什么,怎么做,什么时候做以及为什么要做,描述了以某种顺序完成的活动。其在一个二维空间中描述软件开发活动,可以分为初始阶段,细化阶段,构造阶段和迁移阶段。XP极限过程是一个轻量级的, 敏捷的软件开发方法,同时也是一个非常严谨和周密的方法。 它有四个价值观:交流,简单,反应和勇气。20需求分析的任务是什么?怎样理解分析阶段的任务是决

14、定“做什么,而不是“怎么做"?答:需求分析主要有两个任务:1通过对问题及其环境的理解、分析和综合建立分析模型;2丨是在完全弄清用户对软件系统确实切要求的根底上,用软件需求规格说明书把用户的需求表达出来。需求分析的任务就是为了明确要开发的是一个刷马的系统,而不是怎么去实现这个系统。21 : UML类图中的六种关系,以及组合和聚合的区别与联系?泛化、实现、组合、聚合、关联、依赖;聚合关系表示整体与构造局部关系较弱,而组合比拟强;聚合关系中代表局部事物的对象与代表聚合事物的生存期无关,一旦删除了聚合对象不一定删除了代表局部事物的对象。组合中一旦删除了组合对象。同时也就删除了代表局部事物的对

15、象22. 基于用例的面向对象的需求建模包括哪些步骤?1画用例图2写用例规约 3描述补充规约4编写术语表23. 建立用例模型时,如何确定参与者和用例?什么是用例图?作用是什么?参与者泛指所有存在于系统外部并与系统交互的人、硬件或其他系统。通俗的讲参与者主要是待开发系统的使用者。确定参与者之后,可以根据参与者来确定系统的用例。主要是考察各参与者需要系统提供什么样的效劳,或者说参与者是如何使用系统的。用例图是指由参与者、用例以及它们之间的关系构成的用于描述系统功能的静态视图。用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及他们之间的关系,主要用于对系统、子

16、系统或类的功能行为进展建模。主要作用有三个:1获取需求 2指导测试3还可在整个过程中的其他工作流起到指 导作用。24用哪种UML图可以表示对象间的交互?答:时序图和协作图时序图按时间顺序描述系统元素之间的交互。协作图按照时间和空间的顺序描述系统元素间的交互和相互关系。25 :分析一个用例行为时,通常需要画几个交互图?为什么?2个,时序图和协作图,因为用例是用来描述潜在的用户所看到的系统的UML组件,他是一个被称为参与者的实体所发起的场景的集合。UML建模有UML 静态建模机制和 UML动态建模机制。所以需要多个交互图来表达不同的侧面。26. 增量模型特点增量模型特点:将软件看作一系列相关联系的

17、增量,每一次迭代完成一个增量增量:小而可用的软件,第一个增量常常是软件的核心特点:前一个增量的根底上开发后面的增量每一个增量可采用瀑布模型或快速原型模型来实现增量的顺序性和总体的迭代性相结合有利于控制技术风险27. 统一过程,敏捷过程,极限过程统一过程:描述了软件开发中各个环节应该做什么、怎么做、什么时候做以及为什么要做, 描述了一组以某种顺序完成的活动RUP将软件开发分为四个阶段:初始阶段:定义整个工程的围细化阶段:制定工程方案、描述功能、建立体系架构框架构造阶段:构造软件产品迁移阶段:将软件产品移交到最终用户手中敏捷过程:以人为核心,迭代,循序渐进的开发方法价值观:个人和交互胜过过程和工具

18、可以运行的软件胜过面面俱到的文档 客户合作胜过合同谈判响应变化胜过遵循方案极限过程:轻量级、敏捷的开发方法四个价值观:交流、简单、反应和勇气28. 需求分析步骤和各个过程做了什么需求获取、需求建模、需求描述编写SRS、需求验证需求获取的目的是让开发人员通过各种方式充分和用户交流,全面、准确地了解系统需求;建立需求模型是需求分析的核心 ,它通过各种图形及符合, 可视化地从各个侧面描 述系统需求;构造化方法包括数据流、数据字典、加工规格说明和面向对象方法面向对象方法包括用例模型、补充规约和术语表需求描述即编写需求规格说明书,它以各方共同认可的文档形式表述,是软件设计和系统验收的可靠依据;需求验证用

19、来检验以上各步的工作成果。29. 软件设计的任务软件设计一般包括数据设计、体系构造设计、过程设计、接口设计数据设计将分析阶段创立的信息模型转变成实现软件所需的数据构造;体系构造设计定义软件主要组成部件之间的关系;-接口设计描述软件部、软件和接口系统直接以及软件与人直接是如何通信的包括数 据流和控制流;过程设计将软件体系构造的组成部件转变为对软件组件的过程性描述23. 什么是黑盒测试?黑盒测试主要采用的技术有哪些?黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程 序的部逻辑构造。测试者把被测程序看成一个黑盒 ,不用关心程序的 部构造。黑盒测试是在程序接口处进展测试, 它只检查程序功能是

20、否 能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据 产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整 性。黑盒测试主要采用的技术有:等价分类法、边界值分析法、错误 推测法和因果图等技术。24. 什么是白盒测试?白盒测试主要采用的技术有哪些?白盒测试是测试者了解被测程序的部构造和处理过程,对程序的 所有逻辑路径进展测试,在不同点检查程序状态,确定实际状态与预期 状态是否一致。白盒测试主要采用的技术有:路径测试技术和事务处理流程技 术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技 术。25. 路径测试技术中几种主要覆盖的含义?举例说明?语句覆盖:至少执行程序中

21、所有语句一次。判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为 分支覆盖。条件覆盖:执行所有可能的穿过程序的控制路流程。条件组合测试:设计足够的测试用例,使每个判定中的所有可能 条件取值组合至少执行一次。35. 软件测试包括哪些步骤?同时说明这些步骤的测试目的是什么?答:1单元测试,目的是代码到达模块说明书的要求2集成 测试,目的是将经过单元测试的模块逐步组装成具有良好一致性的完 整的程序3确认测试,目的是确认程序系统是否满足软件需求规 格说明书的要求4系统测试,目的是检查能否与系统的其余局部 协调运行,并且完成SRS对他的要求。36. 需求分析与软件设计二个阶段任务的主要区别是什么?

22、答:需求分析定义软件的用户需求,即定义待开发软件能做什么2.5 分软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。2.5分3. I i打:一怕饌创的汕出兀秦以坨建棹步45卯.成儿歳仃;沿与音,用例.用例規釣毎个6 5)建M用例篠咽少4肌1)根据卓端血界碉宦芬与若门甘2)帳摇毎牛苓斤阳肘足弓Ztll关联的用啊(1)3:村毎牛円鸿写心用例蜕旳上性.国整用枷被型(況祀辱与耆乌苏马昌上測的关晶 OJHfflM 之间的关爲)门匕】http'lcc. csdn. let ;eleg ant_d msl gn. artldle/de:ails/92 59609一、昶MffiarUffr

23、gMAM' lUIIBJ, lll啊叱匕前甘削曲L ftmflHTfTJMlA于刃liE理楸甬切破辰F用对酹ttt的特入J£面向对&分恆世時里.导孜=&梓的.綁涓的M餐型,戲的工件更峯4庫于*0何崙剽一世的,启曲畔方星 二主阴U(1) Hfllifl上 諭叮持隣听恻至誰聲冋翟iPi±i-忡暫丽十 解"廉風闻主珂嘴程競 厨出:忡哥;呵孔;2)面乓对丰才忻一?an亏手逢誉如计 不壬甘护总h珂启百旳沪 而厉冋订Witfigfili爭ffi貝平,曲斥.JS磁于书刖州厢祈I计冇毒(計在谡it审聿枉區曲上,肯向施甘冊輕哒于握起14琢丘如蘆茴14加由册琛

24、1曲于怡述对缽1删力氐(4) fir-:时Jb.b *r.L:共主之吐性点:R. SlF- -J? irtfik 英;丄功-t11*-:F.也 H ;UU?.Fr± W :况'/I 31 ;贰|一.-塔3飞卄唱:工上农7:,十耳门|:“1,:丁,-=飞冲評问喘-; I云rfp,T- ”绘绪论1. 什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1) .软件维护费用急剧上升,直接威胁计算机应用的夸张。(2) .软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差异在哪里?答:构造化程

25、序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确 的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。3. 分别说明1软件开发方法与开发工具;2软件技术与软件管理的相互关系。答:1丨工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并 证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期, 总有人不愿承受和采用。 假设将新方法融合于工具之中, 使人们通过使用工具来了解新

26、方法, 就能更快促进新方法的推广。2在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成方案,管理混乱往往是其中的重要原因。所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。4. 试从你的亲身实践,谈谈软件工具在软件开发中的作用。答:用C+开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进展修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有 关的程序连接起来, 构成一个能在计算机上运行的可执行软件。编译程序

27、,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。5. 什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪, 思路经常被迫中断, 效率难于提高。分时系统的使用,使开发人员 从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。答:以面向对象程序设计为

28、根底。7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。答:按规模分为极小、小、中、大、甚大、极大。1中小型软件:软件工程对改良软件质量,提高程序员生产率和满足用户的需求,有很大的作用。2大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能防止或减少混乱,真正开发出大型的软件。8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?答:它是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质例如程序变换和程序验证等。形式化的方法加上自动化的开发环境,可能是解决这一难题的出路。软件开发模型1 什么是软件生存周期?把生存周期

29、划分为阶段的目的是什么?答:软件生存周期划分为方案、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作容, 使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。2 传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。3 说明文档和复审对于软件质量的控制的作用。答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务。软件开发是许多人共同参加的方案,完整与合格的文档,不仅是开发时期软件人员之间互相通信的媒介,也是运行时期对软件进

30、展维护的中要依据。每一阶段都要对已完成的文档进展复审,以便尽早发现问题, 消除隐患。愈是早期潜伏下来的故障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。及时复审是保证软件质量,降低开发本钱的重要措施。4 什么是快速原型法?其快速表现在哪里?答:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的, 哪些方面还需要改良。 然后将原型改良,最终建立完全符合用 户要求的新系统。它的快速表现在能够缩短开发周期的语言和工具, 能在短时间提供出成品, 但不包括成品中的细节,然后让客户进展比照。5 实现快速原型法的最终系统可以有几种方法?请说明并加以比拟

31、。答:原型系统仅包括未来系统的主要功能,以及系统的重要接口。 为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。最终系统的形成可以采用原型废弃不用,另一方法是补充修改模型获得最终系统。方法一不包括系统的细节。后一种方法在实际工作中,由于原型系统使用的语言往往存在效率不高等原因,除了少数简单的事务系统外,大多数原型都废弃不用,仅把建立原型的过程当作帮助定义软件需求的一种手段。6 比拟增量模型和螺旋模型的特点,有什么不同和相似的地方?答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。增量模型每个增量具

32、有高聚低耦合,高度的 独立性。而螺旋模型它在结合瀑布模型与快速原型的根底上还增加了风险分析。7 为什么利用转换模型开发软件有一定难度?什么是净室软件工程?答:从理论上说,一个正确的, 满足客户需要的形式化规格说明,经过一系列正确的程序变化后,可以确保得到这样一个形式化规格说明,目前还有较高的难度,同时,软件开发者很少具有实用形式化方法所需的背景知识,况且,转换模型开发软件现在还很费时和昂贵!净室根本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“干净的状态下实现软件的制作。8 哪些开发模型适用于面向对象的软件开发?答:构件集成模型9 比拟螺旋模型和构件集成模型的异同。答:构件集

33、成模型利用预先对封装好的软件构件来构造应用软件系统,它融合了螺旋模型的很多特征,支持软件开发的迭代方法。软件需求分析1 需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么,而不是“怎么 做"?答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建立分析模型;第二是在完全弄清用户对软件系统确实切要求的根底上,用“软件需求规格说明书'把用户的需求表达出来。 需求分析的任务就是为了明确要开发的是一个什么样的系统,而不是去怎么去实现这个系统。2 需求分析要经过哪些步骤?答:需求获取、需求提炼、需求描述、需求验证。3 有哪两种主要的分析模型,它们有什么联系?答

34、:面向对象分析模型、 构造化分析模型。前者是采用面向对象的思想进展软件需求分析的 建模过程,而后者模型的核心是 DD,它是设计各种数据对象的总和。他们的模型分别起到了 描述数据模型,功能模型与行为模型的作用。4 .什么是构造化分析?它的“构造化"表达在哪里?答:是使用DFD、DD、构造化语言、判定表和判定树等工具,来建立一种新的、称为构造 化说明书的目标文档。5 什么是面向对象分析?其主要思想是什么?答:00A面向对象的分析是采用面向对象的思想进展软件需求分析建模的过程主要思想是采用面向对象的思想。6. 需求说明或需求规格说明书由哪些局部组成?各局部的主要容是什么?答:引言、信息描述

35、、功能描述、行为描述、质量描述、接口描述、其他描述。引言:主要表达在文体定义阶段确定的关于软件的目标与围,简要介绍系统背景、 盖帽、软件工程约束和按考资料等。信息描述:给出对软件所含信息的详细描述,包括信息的容、关系、数据流向、控制流向和构造等。功能描述:对软件功能要求的说明, 包括系统功能划分、 每个功能的处理说明、限制和控制 描述等。行为描述:包括对系统状态变化及事件和动作的描述,据此可以检查外部事件和软件部的控制特征。质量描述:说明在软件交付使用前需要进展的共更能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。接口描述:包括系统的用户界面、硬件接口、软件接口和通信接口等的说明。其

36、他描述:阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的容。7. 为什么DFD要分层?画分层 DFD要遵循哪些原那么?答:大型复杂的软件系统,其 DFD可能含有数百乃至数千个加工,不能设想一次就将它们 全部画齐。正确的做法是:从系统的根本模型把整个系统看成一个加工开场,逐层地对 系统进展分解。原那么:由顶向下,逐步细化。8. DFD和CFD有什么区别?答:9. 什么是系统的行为模型,如何建立?答:类对象模型所表示的是面向对象分析模型中的静态局部,而对象行为模型那么用于描述系统的动态行为,即系统如何对应外部事件-系统的行为模型。建立一个对象行为模型一般要经历一些过程:评估所以的用例来

37、理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创立事件轨迹;为对象创立状态转换图。10. 选一个系统例如工资处理系统、飞机订票系统、图书馆管理系统等,分别用SA方法和00A方法对它进展分析,并给出分析模型。答:软件设计概述1. 传统软件工程把设计过程分成 2步:概要设计与详细设计。试述这 2个阶段个字主要完 成的任务。答:概要设计,包括构造设计和接口设计,并编写设计文档。详细设计,其任务是确定各个软件组件的数据构造和操作,产生描述个软件组件的详细设计文档。为什么大型软件设计必须分成两步走?答:概要设计和详细设计是软件设计的两步,概要设计确定模块的划分,模块之间的调用关系,接口等;详细

38、设计细分模块、数据构造等;大型系统中分两步走是必要的,概要设计确 定模块划分后,详细设计可把各模块交给不同的人做详细设计,大型系统中这样的分工是比拟合理的,能提高效率,做到合理分工。2. 解释以下名词:1模块;2模块化;3模块化设计。答:模块是一个拥有明确定义的 、输出和特性的程序实体。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成假设干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。相对独立但又相互关联的模块化设计是把大型软件按照规定的原那么划分成一个个较小的、 模块。但又相互关联的模块。3. 什么是模块独立性?用什么

39、度量?答:模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。独立性可以从两个方面来度量:模块本身的聚性(Cohesion)和模块之间的耦合(Coupling)4. 具体说明“一个模块,一个功能的含义,并试讨论这类模块的优点。答:5. 什么是自顶向下设计?为什么说它尤其适用于大型软件的开发?答:设计时首先对所设计的系统有一个全面的理解。然后从顶层开场,连续的逐层向下分解,直至系统的所有模块都笑道便于掌握为止。自底向上设计反映了软件规模较小的设计思想,随着软件规模的增长, 这种方法的缺点逐渐暴露出来。

40、而自顶向下的设计需要进展详细的可行性论证,易于修改和扩展,整体测试较易通过。6自顶向下逐步细化的方法也适用于编写教材。使用这种方法说明编写一本教材的过程。答:7. 输入三角形的3条边长假定这些边确实能组成一个三角形,用它们来鉴别三角形的性质等腰、等边、任意或者直角,并输出结果。试用逐步细化的方法设计这一程序,并用 构造化语言汉语或英语写出细化过程中每一步的过程描述。答:8. 比拟概要设计复审和过程设计复审的评审容,并说明他们采取的复审方式有何异同。答:概要设计复审的重点放在系统的总体构造、模块划分、外构造等方面。例如软件构造是否满足需求?构造形态是否合理?层次是否清晰?模块的划分是不是符合优化

41、原那么?系 统的人机界面、外部接口、以及出错处理是不是合理等。过程设计复审的重点放在模块的具体设计上。例如模块设计能否满足其功能与性能要求?选择算法与数据构造是否合理,是否符合编程语言的特点?设计描述简单、清晰等。概要设计复审常用的复审方式是正式复审。传统的设计方法1.简释事务、事务型构造和变换型构造。答:一次动作、时间或状态变化也可以成为一次事务。事务型构造由至少一条承受路径、一个事务中心与假设干条动作路径组成。变换型构造由至少一条传入路径、变换中心和传出路径组成。2.简述从DFD图到SC图的映射规那么。答:1复审DFD图,必要时可再次进展修改或细化;2丨鉴别DFD图所表示的软件系统的构造特

42、征,确定它所代表的软件构造是属于变换型 还是事务型。3丨按照SD方法规定一组规那么,把 DFD图转换为初始的 SC图;变换映射*初始SC图变换型DFD图 汀旳nsform亟ppi阳)4丨按照优化设计的指导原那么改良初始的SC图,获得最终SC图。5.某事务系统具有以下功能:1读入用户命令,并检查其有效性;2丨按照命令的编号1-4号进展分类处理31号命令计算产品共识,能根据用户给出的各种产品数量,计算出各工种的需要工时和缺额工时;42号命令计算材料消耗,根据产品的材料定额和用户给出的生产数量,计算各种材料的需求量53号命令编制材料订货方案64号命令计算产品成品试用构造化分析和设计方法画出该系统的D

43、FD图并据此到处系统的 SC图。对动作分支中的1号和2号命令要详细描述和设计,3号命令和4号命令允许从略,可仅用示意图表示。答:7. 简述过程详细设计说明书的主要容,怎样对它进展复审?答:(1)为每个模块确定采用的算法。选择某种适当的工具表达算法的过程,写出模块的详细过程描述;确定每一模块使用的数据构造;(3)确定模块接口的细节,包括对系统外部的接口和用户界面,对系统部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节。8. 简化比拟本章讲解的几种过程设计表达工具的优缺点。答:流程图和N-S图伪代码和PDL语言。流程图具有能随意表达任何程序逻辑的有点,随着构造化程序设计方法的普

44、及,流程图在描 述程序逻辑时的随意性与灵活性恰恰变成了它的缺点。N-S图所有的程序构造均用方框来表示,无论并列或者嵌套,程序的构造清晰可见。容易养成良好的程序设计风格。缺点是当程序嵌的层数增多时,层的方块越画越小,不仅增加画图的困难,也使图形的清晰性受到影响。伪代码工作量比画图小,又容易转换为真正的代码,PDL具有很强的描述功能,是一种十分灵活和有用的过程表达工具。9. 任选一种排序从小到大算法,分别用流程图、N-S图和PDL语言描述其详细过程。10. 试将以下用PDL伪代码表示的某种模块的过程性描述改用 N-S图表示。Execute process aREPEAT UNTIL con dit

45、i on X8Execute process bIF con dition X1THEN BEGINExecute process fIF con dition X6THENREPEAT UNTIL con diti on X7Execute process iENDREPELSE BEGINExecute process gExecute process hENDENDIFELSE CASE OF XiWHEN con tditi on X2 SELECTDO WHILE con titio n X5execute process CENDDOWHEN con dition X3 SELECT process dWHEN con dition X4 SELECT process eENDCASEENDIFENDREPExecute processj39 / 38表示零件,Issue和Recept分别表示零件的出库量和入库量。现要求:1找出输入构造与输出构造之间的对应单元2画出用Jackson图表示的程序构造3丨列出程序所需要的操作,并加到第2丨步画出的程序构造图上4用伪代码写出收发管理程序的过程性表示In put filepart group*Moveme

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1