版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 软件工程概念 第一章:软件定义 1.软件( Software):软件=程序+数据+文档软件工程: 软件工程是研究如何将完善的科学与工程原理,先进高效的管理技术以及完整规范的设计方法应用于经济地开发即可靠,又能在实际计算机上有效运行的软件的一门工程学科。3.软件生命周期: 软件生命周期是一个软件系统从目标提出、定义、开发、使用和维
2、护,直到最后丢弃的整个过程。4.加工: 数据的基本处理过程.5.数据字典: 对数据流图中所有的数据元素、数据结构、数据文件、数据流等的格式与内容进行定义的数据集合6.数据流图: 一种描述数据在系统中流动的图形工作7.模块独立性: 所谓模块独立性是指模块完成它自身规定的功能而与系统中其它的模块保持一定的相对独立。8.UML: Unified Modeling Language统一建模语言,是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。9.什么事软件危机?危机的主要表现是什么?: 软件危机是指在软件开发和维护中遇到了一系列严重的问题。表现:对软件开发的成本和进度难于估计。软件质
3、量不高,潜在差错的危害。缺乏完整、正确的文档,维护极困难,难于移植以至于不得不重复开发类似的软件。10.什么是软件开发的工程化?工程化的软件开发方法与早期的程序设计方法的不同点在哪里? : 软件工程学的核心思想是:用工程化的规范方法指导软件的开发、运行及维护工作。工程化需要包括如下四个方面: .具有相应的理论与技术 .具备实现工程化的工具和环境 .具备统一的工程规范 .管理和控制 早期的程序开发方法没有统一的指导原则,随意编写程序,强调程序执行效率。工程化的软件开发方法具有统一的指导原则,规范化的开发软件,强调软件的可理解性,可维护性和可复用性。11.瀑布模型的主要缺点是什么?原型开发方法有什
4、么好处?: 瀑布模型给出了固定的开发顺序,它的突出缺点是缺乏灵活性。软件需求往往无法一下子彻底弄清,因此瀑布模型可能导致开发出的不是用户真正需要的软件,或者由于需求不能确定而造成项目后续工作无法开始。l 瀑布模型很难适应需求的动态变更,特别是用户对需求处于模糊认识时更为困难。后期更改需求将付出高昂的代价。l 原型方法的好处包括:增进了软件开发人员和用户对系统需求的理解,使比较含糊的软件需求明确化;提供了一种有力的学习手段。12.需求与设计的主要任务是什么?: 需求的任务:l 对问题的识别和理解需求获取l 对需求信息的分析和综合需求规约编制“需求规格说明书” l 需求分析的复审设计的任务:l 制
5、定规范。l 软件结构的设计l 数据结构的设计及接口设计:l 系统性能设计l 软件质量的设计l 设计文档的编写l 设计的审查和复审13.什么叫耦合?什么叫内聚?耦合、内聚与模块独立性的关系?: 内聚是指模块内部各软件元素之间结合的紧密程度l耦合是度量一个软件结构中模块与模块之间联系程度强弱的一个指标l内聚程度越高模块独立性越强,耦合程度越低模块独立性越强。14. 软件系统的两种典型结构是什么?它们有什么特点?: 变换型结构:在系统数据流图中,呈现出明确的输入、变换处理和输出3个部分的结构特征。 事务型结构有一个加工,它将输入流分离成若干个不容的输出流,从而形成若干种不同事务处理活动的路径,并允许
6、系统逐一处理。15.什么是对象?什么是类?对象和类的关系是什么?:对象是各种客观实体的抽象,是由一组属性和对这组属性进行操作的一组服务结合在一起所构成的独立实体。它构成了系统概念模型的基本单元。l 类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。l 类中的每个对象都称为该类的一个实例。16.面向对象设计的原则?:模块化数据抽象和过程抽象信息的隐蔽和封装对象的高内聚和低耦合复用17.简述算法的几种描述工具:程序流程图结构流程图(盒图) PAD图判定表判定树过程定义语言18.什么是白盒测试?什么是黑盒测试?:白盒测试技术是从程序内部结构入手来设计测
7、试用例的测试技术;l黑盒测试技术则相反,不考虑软件内部结构,而是以软件需求规格说明书为根据来设计测试用例的测试技术。2.软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。 3.按软件功能分类:系统软件,支撑软件,应用软件。 系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。 支撑软件:文本编辑程序,文件格式化程序,程序库系统等 应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。 按软件规模分类:微型,小型,中型,大型,甚大型,极大
8、型。 按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件 4.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 5.软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2.如何维护数量不断膨胀的已有软件? 5.软件危机的表现:1.成本高,开发成本估计不准确2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6. 由于软件质量问题导致失败的软件项目非常多。 6.产生软件危机的原因:1.与软件本身的特点有关 2.与软件开发与维护的方法不正确有关.
9、软件工程学的目的:以较低的成本研制具有较高质量的软件 软件工程技术的两个明显特点:1.强调规范化2. 强调文档化 软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性 8.软件工程方法学包含3个要素:方法、工具和过程 9.软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发( 总体设计,详细设计,编码和单元测试,集成测试),运行维护 ( 持久满
10、足用户需求) 10.软件过程模型:瀑布模型,快速原型模型,增量模型 ,螺旋模型,喷泉模型。 11.软件过程模型RUP:初始阶段,细化阶段,构造阶段,移交阶段 1.可行性研究的五个方案:技术可行性,经济可行性,操作可行性,法律可行性,社会效益 2.可行性研究过程:1.复查系统规模与目标、2.研究目前的系统、3. 导出新系统的高层逻辑模型、4. 进一步定义问题、5. 导出和评价供选择的解法、6. 推荐行动方针、7. 草拟开发计划、8.书写文档提交审查 3.系统流程图:用来描述物理系统的工具
11、。 4.系统流程图表达:是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。即:系统流程图程序流程图。 5.系统流程图的基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件 6.系统流程图元素:处理,输入输出,连接,换页连接,数据流。 7.数据流图:用来描述逻辑系统的工具。 数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。 8.数据流图四种基本符号:数据加工/处理/变换,数据源点或终点 (外部实体),
12、数据存储,数据流。 9.数据字典的组成:数据流,数据流分量(数据元素),数据存储,处理。10.数据元素:顺序,选择,重复,可选。 1.需求分析:软件定义时期的最后一个阶段, 2.需求分析的基本任务:不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 3.软件需求的组成:业务需求, 用户需求,系统需求。 4.需求分析方法:面向数据流的结构化分析方法 (SA),面向对象的分析方法 (OOA) 等5.逻辑模型:数据流图(DFD),数据字典(
13、DD),实体-关系图(ERD),状态转换图(STD) 6.物理模型:系统流程图, 7.需求分析的基本思想:“自顶向下,逐步求精”,抽象和分解 8.需求分析;功能模型数据流图,数据模型实体-关系图,行为模型状态转换图 9.实体-关系图(ERD):描述数据对象及数据对象之间的关系 10.数据流图(DFD):描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能) 11.状态转换图(STD):描述系统对外部事件如何响应,如何动作 模型的核心是数据字典
14、 12.实体-联系图(ER)组成::数据对象(实体)、数据对象的属性及数据对象彼此间相互连接的关系。 联系:一对一联系,一对多联系,多对多联系。 通常用矩形框代表实体;用连接相关实体的菱形框表示关系;用椭圆形或圆角矩形表示实体(或关系)的属性;并用直线把实体(或关系)与其属性连接起来。 13.数据规范化目的是:1.消除数据冗余,即消除表格中数据的重复;2.消除多义性,使关系中的属性含义清楚、单一;3.使关系的“概念”单一化,
15、让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组;4.方便操作。使数据的插入、删除与修改操作可行并方便;5.使关系模式更灵活,易于实现接近自然语言的查询方式。 14.状态转换图(简称为状态图):通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果,系统将做哪些动作(例如,处理数据)。 15.状态:初态:一个,终态:0或多个,中间状态 16. 验证软件需求:一致性,完整性,现实性, 有效性。 1.总体设计(概要设计):将软件需求转化为数据结构和软件的系统结构2.数据库设计包括三
16、个步骤:模式设计,子模式设计,存储模式设计。 3.软件设计原理:模块化,抽象,逐步求精,信息隐藏与信息局部化,模块独立 4.模块:是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。C、C+和Java语言中的 . 对过程、函数、子程序和宏等面向对象方法学中的对象是模块,对象内的方法也是模块 模块化是好的软件设计的一个基本准则 5.模块独立的含义:模块完成独立的功能,符合信息隐藏和信息局部化原则,模块间关连和依赖程度尽量小。 6.独立性的度量:耦合、内聚。 7.耦合是对一
17、个软件结构内不同模块之间互连程度的度量。 8.耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点以及通过接口的数据9.模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。 耦合性越高,模块独立性越弱 10.耦合强度依赖的因素: 一模块对另一模块的引用 一模块向另一模块传递的数据量 一模块施加到另一模块的控制的数量 模块间接口的复杂程度 11.耦合性由强到弱排列为:内容耦合,公共耦合,特征耦合,控制耦合,数据耦合。 12.原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完
18、全不用内容耦合。 13.内聚 (Cohesion):标志一个模块内各元素彼此结合的紧密程度。 14.内聚有七种,由弱到强分别为:偶然内聚->逻辑内聚->时间内聚->过程内聚->通信内聚->顺序内聚->功能内聚。 15.深度 = 分层的层数。过大表示分工过细。 16.宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。 17.扇出 = 一个模块直接调用/控制的模块数。 18.扇入 = 直接调用该模块的模块数。
19、 19控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。 20.作用域:受该模块中的一个判定所影响的所有模块的集合。 面向数据流的设计方法:变换流,事务流。 1.详细设计:描述系统的每个程序,包括每个模块和子程序名称、标识符、层次结构系 2.对程序的功能、性能、输入、输出、算法、流程、接口等进行描述 3.程序控制结构:顺序、选择,循环,(多分支,DO While ,DO Until)五种基本控制结构。4.程序流程图又称为程序框图:是对一个模块的内部执行过程用图形来描述。 5.盒图:只能
20、从上边进入,从下边走出,没有其他的入口和出口, 6.盒图的基本符号:顺序,选择型(If-then-else),多分支选择型(CASE型),DO-WHILE循环(先测试循环), DO-UNTIL循环(后测试循环). 调用子程序. 7.PAD图:PAD图中竖线的总条数就是程序中的层次数 8.PAD图基本符号:顺序,选择,循环,Case分支,语句标号,定义. 9.判定表:左上部列出所有的条件,左下部是所有可能的操作,右上部是各种条件的组合矩阵,右下部是每种条件组合对应的动作 1.实现:编码和测试 2编码:把软件设计结果翻
21、译成用某种程序设计语言书写的程序 3.程序设计语言:机器语言,汇编语言,高级语言 4.程序内部的文档包括:恰当的标识符,适当的注释,程序的视觉组织 。 5.符号名即标识符;包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等。 6.程序的注释:程序员与日后的程序读者之间通信的重要手段 7.注释分为序言性注释和功能性注释. 8.软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审,其工件量约占总工作量40%以上(对于人命关天的情况,测试相当于其它部分总成本的35倍)。
22、8.软件测试方法:静态测试方法,动态测试方法 9.静态测试方法:人工测试方法,计算机辅助静态分析方法 10.动态测试方法:白盒测试方法,黑盒测试方法. 11.黑盒测试法又称功能测试:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程 12.白盒测试法又称为结构测试:把程序看成装在一个透明的白盒子,测试者完全知道程序的结构和处理算法 13.软件测试步骤:1.模块测试又称(单元测试),2.子系统测试,3.系统测试称为集成测试,4.验收测试也称为确认测试,5.平行运行 14.单元测试主要使用白盒测试技术。 15.单元测试重点
23、:模块接口,局部数据结构 ,重要的执行通路,出错处理通路,边界条件。 16.集成测试方法:非渐增式测试方法,渐增式测试方法 17.渐增式测试策略:可使用深度优先的策略,或宽度优先的策略 18.回归测试:是指重新执行已经做过的测试的某个子集,以保证修改变化没有带来非预期的副作用。 19.白盒测试技术:逻辑覆盖 20.逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。 21.逻辑覆盖:语句覆盖, 判定覆盖 ,条件覆盖,判定条件覆盖, 条件组合覆盖,21.路径覆盖,点覆盖=
24、0;语句覆盖,边覆盖=判定覆盖,路径覆盖 与条件组合覆盖。 22.语句覆盖:每条语句至少执行一次 23.判定覆盖 :每一判定的每个分支至少执行一次 24.条件覆盖:每一判定中的每个条件,分别按“真”、“假”至少各执行一次25.判定条件覆盖:同时满足判定覆盖和条件覆盖的要求 26.条件组合覆盖:求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次。 27.路径覆盖:每条可能的路径都至少执行一次,若图中有环,则每个环至少经过一次 28.黑盒测试着重测试软件功能。 29.黑盒测试技术:等价类划分,
25、边界值分析法,错误推测法 30.等价类:有效等价类和无效等价类 31.边界值分析法,应该选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据 32.调试途径调试策略:蛮干法,回溯法,原因排除法33.原因排除法-包括:对分查找法、归纳法、演绎法34.软件可靠性:可靠性,可用性,正确性 35.可靠性和可用性的区别是:可靠性是在0到t时间间隔内,系统没有失效的概率。而可用性是在t时刻,系统正常运行的概率。 1.软件维护的定义:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。 2.软件维护的原因:在运行中
26、发现软件错误和设计缺陷,这些错误和缺陷在测试阶段未能发现。 3.软件维护的类型:改正性维护,适应性维护,完善性维护,预防性维护4.软件维护的内容:程序维护,数据维护,硬件维护 5.软件维护的特点:结构化维护与非结构化,维护的代价分(有形代价和无形代价),维护的问题。 6.软件维护过程:建立维护组织,维护报告,维护的事件流,保存维护记录,评价维护活动, 7.软件的可维护性:1.决定软件可维护性的因素(可理解性,可测试性,可修改性,可移植性, 可重用性)2.文档 影响可维护性的决定因素,比代码更重要。3.复审 2、某
27、银行计算机储蓄系统的工作流程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人的姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能。并画出系统的E-R图。3、试用N-S图和PAD表示下面程序流程图,并计算它们的McCabe复杂性度量.(基本路径测试法的 环复杂度)。(10%)2、软件工程软件工程是研究如何将完善的科学与工程原理,先进高效的管理技术以及
28、完整规范的设计方法应用于经济地开发即可靠,又能在实际计算机上有效运行的软件的一门工程学科。4、模块独立性所谓模块独立性是指模块完成它自身规定的功能而与系统中其它的模块保持一定的相对独立。二、简答题2、什么是软件开发的工程化?工程化的软件开发方法与早期的程序设计方法的不同点在哪里?答:软件工程学的核心思想是:用工程化的规范方法指导软件的开发、运行及维护工作。工程化需要包括如下四个方面:.具有相应的理论与技术 .具备实现工程化的工具和环境.具备统一的工程规范.管理和控制 早期的程序开发方法没有统一的指导原则,随意编写程序,强调程序执行效率。工程化的软件开发方法具有统一的指导原则,规范化的开发软件,
29、强调软件的可理解性,可维护性和可复用性。3、瀑布模型的主要缺点是什么?原型开发方法有什么好处?答:瀑布模型给出了固定的开发顺序,它的突出缺点是缺乏灵活性。软件需求往往无法一下子彻底弄清,因此瀑布模型可能导致开发出的不是用户真正需要的软件,或者由于需求不能确定而造成项目后续工作无法开始。l瀑布模型很难适应需求的动态变更,特别是用户对需求处于模糊认识时更为困难。后期更改需求将付出高昂的代价。l原型方法的好处包括:增进了软件开发人员和用户对系统需求的理解,使比较含糊的软件需求明确化;提供了一种有力的学习手段。5、什么叫耦合?什么叫内聚?耦合、内聚与模块独立性的关系?答:内聚是指模块内部各软件元素之间
30、结合的紧密程度l耦合是度量一个软件结构中模块与模块之间联系程度强弱的一个指标l内聚程度越高模块独立性越强,耦合程度越低模块独立性越强。6、什么是对象,什么是类,对象和类的关系是什么?答:对象是各种客观实体的抽象,是由一组属性和对这组属性进行操作的一组服务结合在一起所构成的独立实体。它构成了系统概念模型的基本单元。类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。l类中的每个对象都称为该类的一个实例。 1、 白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能&
31、#160;C.内部逻辑 D.输入数据 2、 风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、 极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发
32、布 C.反馈和勇气 D.持续集成 4、 等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、 下列不属于黑盒测试的技术是(A)。 A程序段或语句的功能 B模块的接口 C数据的名称和用途 &
33、#160; D模块的功能 6、 为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、 一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、 功能性注释
34、嵌入在源程序内部,它是用来说明(A)。 A程序段或语句的功能 B模块的接口 C数据的名称和用途 D模块的功能 9、 在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B有结构化
35、语言和判定树 C有结构化语言、判定树和判定表 D有判定树和判定表 10、 某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A正确性 B适应性 C完善性 D预防性 11、 软件危机的主要原因是(A)。 A软件本身特点与开发方法 B对软件的
36、认识不够 C软件生产能力不足 D软件工具落后 12、 DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A输入、输出、外部实体和加工 B变换、加工、数据流和存储 C加工、数据流、数据存储和外部实体 D 变换、数据存储、加工和数据流 13、 软件工程管理是对软件项目的开发管理。具体地说,就是对整个软件(A)的一切活动进行管理。 A.生存期
37、60; B.开发 C.制定计划 D.项目14、 在面向数据流的软件设计方法中,一般将信息流分为( A )。 A.变换流和事务流 B.变换流和控制流 C.事务流和控制流 D.数据流和控制流 15、 在软件工程项目中,不随参与人数的增加而使软件生产率增加的主要原因是(D)。 A、工
38、作阶段间的等待时间 B、 生产原型的复杂性 C、 参与人员所需的工作站数 D、参与人员之间的通信困难 16、 下面(B)不是软件的特征。 A系统性与复制性 B有形性与可控性 C抽象性与智能性 D依附性与泛域性 17、 下列关于面向对象分析与设计说法错误的是(C)。 A.面向对象的设计以面向对象分析为基础归纳出类 B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象&
39、#160;C.面向对象的设计是面向对象分析的另一种思维方式 D.面向对象的设计是面向对象分析进一步的细化和更高的抽象18、 在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。 A. 经济可行性 B. 技术可行性 C. 操作可行性 D. 法律可行性 19、 下述任务中,不属于软件工程需求分析阶段的是( D ) 。 A. 分析
40、软件系统的数据要求 B确定软件系统的功能需求 C. 确定软件系统的性能要求 D.确定软件系统的运行平台20、 在面向对象方法中,信息隐蔽是通过对象的( C )来实现的。 A分类性 B继承性 C封装性 D共享性 21、 采用面向对象方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的过程叫(D)。 A面向对象测试 B面向对象实现 C面
41、向对象设计 D面向对象分析22、 在遵循软件工程原则开发软件过程中,计划阶段应该依次完成(B)等步骤。 A. 软件计划、需求分析、系统定义 B. 系统定义、软件计划、需求分析 C. 需求分析、概要设计、软件计划 D. 软件计划、需求分析、概要设计 23、 一个项目为了修正一个错误而进行了变更,但这个错误被修正后,却引起以前可以正确运行的代码出错。(C)测试最有可能发现这个问题。 A单元测试 B接受测试 C回归测
42、试 D安装测试 24、 从工程管理的角度来看,软件设计分( A )两步完成。 A) 概要设计与详细设计B) 数据设计与接口设计 C) 软件结构设计与数据设计 D) 过程设计与数据设计 25、 某系统重用了第三方组件(但无法获得其源代码),则应采用( D )对组件进行测试。 A.基本路径覆盖 B.分支覆盖 C.环路覆盖 D.黑盒测试 26、 在软件设计与编码过程中,采
43、取( C )的做法将使软件更容易理解和维护。 A良好的程序结构,有无文档均可 B使用标准或规定之外的语句 C编写详细正确的文档,采用良好的程序结构 D尽量减少程序中的注释27、 软件维护成本在软件成本中占较大比重,为降低维护的难度,可采取的措施有( D )。 A设计并实现没有错误的软件 B限制可修改的范围 C增加维护人员数量 D在开发过
44、程中就采取有利于维护的措施并加强维护管理 28、 (A)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。 A.结构化开发方法 B.Jackson系统开发方法 C.Booch方法 D.UML(统一建模语言) 30、 测试用例是测试使用的文档化细则,应包括下列( B )内容的详细信息。 测试目标和被测功能。 测试
45、环境和其他条件。 测试数据和测试步骤。 测试记录和测试结果。 A B C D 31、( 螺旋 )模型适合于大型软件的开发,它吸收了软件工程“演化”的概念,使得开发人员和用户对每个周期出现的风险有所了解,从而做出相应的反应。 32、
46、60;软件测试中,白盒法是通过分析程序的(B)来设计测试用例的。 A.应用范围 B.内部逻辑 C.功能 D.输入数据 33、 可行性分析要进行的需求分析和设计应是(C)。 A详细的 B
47、全面的 C简化、压缩的 D彻底的 34、 下面关于面向对象分析与面向对象设计的说法,不正确的是(D)。 A面向对象分析侧重于理解问题 B面向对象设计侧重于理解解决方案 C面向对象分析描述软件要做什么 D面向对象设计一般不关注技术和实现层而的细节 35、 软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。在划分软件系统模块时,应尽量做到(B)。 A. 高内聚高耦合&
48、#160; B. 高内聚低耦合 C. 低内聚高耦合 D. 低内聚低耦合 36、 软件工程每一个阶段结束前,应该着重对可维护性进行复审,在系统设计阶段的复审期间,应该从(B)出发,评价软件的结构和过程。 A指出可移植性问题以及可能影响软件维护的系统界面 B容易修改、模块化和功能独立的目的 C强调编码风格和内部说明文档 D可测试性 37、 软件的集成测试工作最好由(D)人员承担,以提高集成测试的效果。 A.该软件的设计人员
49、160; B.该软件开发组的负责人 C.该软件的编程人员 D.不属于该软件开发组的软件设计人员 38、 程序的三种基本控制结构是(B )。 A.过程,子程序,
50、分程序 B.顺序,条件,循环 C.递归,堆栈,队列 D.调用,返回,转移 39、 ( C )是决定软件维护成败和质量好坏的关键。 A修改程序 B建立目标程序 C分析
51、和理解程序 D重新验证程序 40、 数据库设计时的概念数据模型一般用(B )图表示。 A.PAD B.E-R C.E-P D.HIPO 41、 若有一个计算类型的程序,它的输入量只有一个,其范围是-1.0,1.0,现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( C )。 A逻辑覆盖 B等价类划分
52、 C边界值分析 D错误推测 42、 在结构化分析方法(SA)中,( C )与数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。 A模块图 BE-R 图 C数据字典 D程序流程
53、图 43、 面向对象的分析方法主要是建立三类模型,即( D )。 A.系统模型、ER 模型、应用模型 B.对象模型、动态模型、应用模型 C.-模型、对象模型、功能模型 D.对象模型、动态模型、功能模型 44、 成功的测试是指运行测试用例后( B )。 A未发现程序错误 B发现了程序错误 C证明程序正确 D改正了程序错误 45、 面向数据流的设计方法把( A
54、60;)映身成软件结构。 A.数据流图 B.系统结构图 C.控制结构图 D.变换流图 46、 软件危机是指(软件开发和维护过程中遇到的一系列严重问题)。 47、 检查软件产品是否符合需求定义的过程称为( A )。 A确认测试 B集成测试
55、160; C验证测试 D验收测试 48、 汽车有一个发动机,汽车和发动机之间的关系是(B)关系。 A.一般与具体 B.整体与部分 C.分类 D.is a 49、 详细设计的基本任
56、务是确定每个模块的( A )设计 A.算法和使用的数据结构 B.外部接口 C.功能 D.编程 50、 软件产品的生产主要是脑力劳动,软件产品的成本主要体现在软件的( C )上。 A.复制 B.开发方式
57、160; C.开发和研制 D.磨损和消耗 51、 以下(D )不属于系统设计。 A总体设计 B详细设计 C过程设计 D需求设计 52、 需求规格说明书的作用不应该包括( D )。 A.软件设计的依据 B.用户与开发人员对软件要做什么的共同理解 C.软件验收的依
58、据 D.软件可行性研究的依据 53、 软件质量必须从需求分析开始,在( D )加以保证。 A开发之前 B开发之后 C可行性研究过程 D整个开发过程 54、 软件简略定义是(一系列按照特定顺序组织的计算机数据和指令的集合)。 55、 SA方法的基本思想是( C )。 A自底向上逐步抽象 B自底向上逐步分解 C自顶
59、向下逐步分解 D自顶向下逐步抽象 56、 软件工程是一门(指导计算机软件开发和维护的工程(交叉性))学科。 57、 等价分类法的关键是( C )。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分1 可行性研究 _的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。 2采用UML进行软件设计时,可用_泛化_关系来表示两类事物之间存在的特殊/一般关系,用
60、_ 聚集 _关系来表示事物之间存在的整体/部分关系。 3继承与_ 多态 _机制,是面向对象程序中实现重用的主要手段。 4成本效益分析的目的是从 经济 角度评价开发一个软件项目是否可行。 5对象之间通过 消息 进行通信。 6在面向对象的软件中, 类 是对具有相同数据和相同操作的一组相似对象的定义;实例是由某个特定的类所描述的一个具体对象。 7需求分析阶段产生的最重要的文档是
61、160; 需求规格说明书 。 8软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的 重要特性 。 9软件开发过程来自用户方面的干扰和阻力主要有:不积极配合,求快求全和 功能变化。 10软件文档按照其产生和使用的范围可分为开发文档、管理文档和用户文档,其中可行性研究报告属于 开发文档。 11可行性研究实质上是要进行一次 简化、压缩 了的需求分析、设计过程,是在较高层次上以较抽象的方式进行需求分析和设计过程。
62、;12一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用 角色 来表述“谁做”。 13在面向对象的软件中,类是对具有相同数据和相同操作的一组相似对象的定义; 实例 是由某个特定的类所描述的一个具体对象。14软件结构是以 模块 为基础而组成的一种控制层次结构。 15软件能力成熟度模型(CMM)将软件能力成熟度自低到高依次划分为初始级、可重复级、定义级、管理级 和优化级。 16关联是建立
63、类之间关系的一种手段,而链则是建立 对象 之间关系的一种手段。 17. 软件测试方法中的 计算机辅助静态分析 属于静态测试方法。 18继承与 多态 机制是面向对象程序中实现重用的主要手段。 19系统详细设计阶段最后产生的文档是 详细设计说明书 。 20DFD利用图形符号表示系统中的各个元素,表达了系统中各种元素之间的 信息流动 。 21在设计阶段,要充分体现软件工程
64、的“ 模块化 ”、“抽象”、“信息隐蔽”等基本原则。 22在面向对象分析和OOD中,通常将对象的操作称为 方法或服务 。 23单元测试一般以_ 白盒法 为主,测试的依据是系统的模块功能规格说明。 24当A模块调用B模块时,若两个模块之间传递的是数值型参数,则这两个模块的耦合方式是 数据耦合 。 25软件测试用例主要由输入数据和 预期输出结果 两部分组成。 26为适应软硬件环境变化而修改软件的过程是 适应性维护 。 2
65、7提高程序效率的根本途径在于选择良好的设计方法、良好的 数据结构 和 算法 ,而不是靠编程时对程序语句做调整。 1数据字典:描述数据流图的数据存储、数据加工(最底层加工)和数据流。 2模块独立性:指每个模块只完成系统要求的独立的子功能(即:功能单一),并且与其他模块的联系最少且接口简单(比如:只有一个接口)。 3软件复用:将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。4内聚:一个模块内部各成分之间相关联程度的度量 5测试用例:为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试
66、某个程序路径或核实是否满足某个特定需求 6软件生存周期模型:描述软件开发过程中各种活动如何执行的模型 7.信息隐蔽:将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理 8.McCabe度量法:由Thomas McCabe提出的一种基于程序控制流的复杂性度量方法 9.动态模型:用于描述系统的过程和行为 10.软件维护:在软件运行或维护阶段对软件产品所进行的修改 11CMM:软件过程能力成熟度模型 12软件调试:软件测试成功后,根据错误迹象确定错误的原因和准确位置,并加以改正。
67、13耦合:块间联系,软件系统结构中各模块间相互联系紧密程度的一种度量 14配置管理:一种标识、组织和控制修改的技术,应用于整个软件工程过程 15软件项目计划:一个软件项目进入系统实施的启动阶段 1软件工程的两大范型分别是什么?它们有什么不同? 分别是传统的结构化范型和面向对象范型。结构化范型要么面向行为要么面向数据,但没有既面向数据又面向行为的;而面向对象范型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的统一的软件组件。面向对象相对于结构化技术,无论对象的内部细节如何变化,只要对象提供的方法即接口保持不变,则整个软件产品的其他部
68、分就不会受到影响,不需要了解对象内部的变化。 2如何画分层数据流图? 第一步,画子系统的输入输出:把整个系统视为一个大的加工,然后根据数据系统从哪些外部实体接收数据流,以及系统发送数据流到那些外部实体,就可以画出输入输出图。这张图称为顶层图。 第二步,画子系统的内部:把顶层图的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过若干加工处理后,变成顶层图的输出数据流。这张图称为0层图。从一个加工画出一张数据流图的过程就是对加工的分解。 3面向对象程序设计有哪些优点? 1)易维护采用面向对象思想设计的结构,可读性高,由于继
69、承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。 2)质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。 3)效率高在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 4)易扩展由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。 4在软件测试中,应注意哪些原则? 1)认真执行测试计划
70、2)“尽早和不断地进行软件测试/评审” 3)优选测试工具、技术和方法 4)精心设计测试用例 5)交叉进行软件检测 6)重点测试群集现象 7)全面检查并分析测试结果 8)妥善保管测试文档 5为了具有良好的程序设计风格,应注意哪些方面的问题? 程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。 要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。 6面向对象分析与面向对象设计的关系? 面向对象分析与面向对象设计的任务相同,面
71、向对象分析的结果可以作为开始面向对象设计的模型,面向对象的设计结果可以作为蓝图,利用面向对象编程方法最终实现一个系统。 7成本-效益分析的目的是什么?可用哪些指标进行度量? 成本/效益分析的目的是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否投资开发新系统的依据。 (1)货币的时间价值:货币的价值本身随时间的增加而产生增值 (2)投资回收期:累计的经济效益等于最初的投资所需的时间。 (3)纯收入:在整个生存周期内系统的累计经济效益(折合现在的钱)与投资之差。 (4)投资回收率-投资的年利率 8软件设计分哪几个阶段
72、,它们的主要任务是什么? 软件设计可以分为概要设计和详细设计两个阶段。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。9用户需求和系统需求各有什么特点? 用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、一致的系统描述,是软件工程人员系统设计的起点。
73、160;系统需求描述可能包括许多不同的模型,如对象模型和数据流模型。 10面向对象设计的准则? 1)模块化 2)抽象 3)信息隐藏 4)弱耦合 5)强内聚 6)可重用 11需求分析过程主要有哪几个步骤? 需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说明、需求验证、变更管理等步骤。 12软件设计分哪几个阶段,它们的主要任务是什么? 总体设计概要设计、软件结构设计、高层设计,仔细地分析需求规格说明,研究开发产品的模块划分。 详细设计(模块)过程设计、
74、低层设计,为结构设计中的各个模块设计过程细节,确定模块所需的算法和数据结构等。 设计测试测试和复审,确保设计的正确和优化。 13什么是软件结构图?它有哪些主要元素? 软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系。主要元素有: 14面向对象方法的特点是什么?为什么要用面向对象方法开发软件? 面向对象方法的特点是: 方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。 从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修改。 把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。 使用面向对象方法开发软件的好处是: 开发方法的唯一性,开发阶段的高度连续性,表示方式的一致性; 问题空间实体的自然表示,减轻了设计者的负担,在设计系统之初不必考虑一个很完整
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗信息化在基层医疗机构的推广与应用
- 智能化医疗设备市场前景分析
- 心血管内科病例分析与诊疗经验
- 护理人员在临床科研中的角色与作用
- 2026年保定幼儿师范高等专科学校高职单招职业适应性测试备考题库带答案解析
- 医疗纠纷预防与处理机制建设
- 2026年鄂尔多斯职业学院单招综合素质笔试模拟试题带答案解析
- 2026年河北科技工程职业技术大学单招职业技能笔试备考题库带答案解析
- 医疗机构医院宣传礼仪培训
- 介入放射科技术革新展示
- 高中家长会 高一选科指导家长会课件
- 法院管辖权异议申请书
- 医院主要领导综合能力素质自我评价
- DZ∕T 0399-2022 矿山资源储量管理规范(正式版)
- 2022资源环境承载能力和国土空间开发适宜性评价技术指南
- 大树移植操作规程
- 安保员巡查记录表
- 2022年内蒙古交通运输厅所属事业单位考试真题及答案
- 海水淡化PX能量回收装置维护说明书
- 妇产科学(第9版)第二章女性生殖系统解剖
- 中医经络之-特定穴课件
评论
0/150
提交评论