2014软件工程重点答案
- 格式:doc
- 大小:47.11 KB
- 文档页数:7
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
1.选择正确答案:(1)在软件生存周期中, A 阶段所占的工作量最大;(2)结构化分析方法产生的软件需求说明书由一套分层的 B 、数据字典和补充说明材料组成;(3)软件的 C 一般可用平均无故障时间和故障平均修复时间来度量;(4)采用 D 编写程序可提高程序的可移植性;(5)仅根据规格说明书描述的程序功能来设计测试用例的方法称为 E 。
A ①分析②设计③编码④测试⑤维护B ①因果图②数据流图③ PAD图④流程图C ①易维护性②可靠性③效率④易理解性D ①机器语言②宏指令③汇编语言④高级语言E ①白盒方法②静态分析法③黑盒方法④人工分析法2.需求分析的主要任务是建立新系统的 A ;总体设计的主要任务是设计出新系统的B ;详细设计的主要任务是完成模块的C ;编码的主要任务是写出各模块的D 。
A:①系统结构②逻辑模型③软件结构④系统流程B:①软件结构②模块结构③逻辑模型④数据流程C:①输入输出设计②逻辑功能设计③过程设计④结构设计D:①PAD ②PDL ③源程序④过程性描述3.软件设计将涉及到软件的结构、过程和模块的设计,其中软件过程设计是指描述。
①模块间的关系②模块的操作细节③软件层次结构④软件开发过程4.模块独立是软件模块化所提出的要求,衡量模块独立的度量标准是模块的。
①抽象和信息隐蔽②局部化和封装③高内聚和低耦合④激活机制和控制方法5.在结构化分析和设计技术(SADT)中,数据流图是用于描述系统的 A 的主要工具,数据字典是定义 B 中关于数据的描述工具。
A ①详细设计②需求分析③总体设计④逻辑模型B ①数据流图②系统流程图③程序流程图④软件结构图6.人们在使用高级语言编码时,首先可通过编译程序发现源程序中的全部 A 和部分语法错误,然后可采用 B 来发现程序中的运行错误并采用纠错来确定错误的性质,设计错误是泛指用户在验收中发现的结果与需求不符的错误。
A的选项:①符号错误②逻辑错误③通路错误④语义错误B的选项:①诊断②测试③检验④排错⑤纠错⑥试探7.用面向对象方法开发软件时,人们通常从三个侧面建立三种不同的模型:一是描述系统静态结构的A对象模型;二是描述系统控制结构的B动态模型;三是描述系统计算结构的C功能模型。
软件工程复习题答案一、选择题1. 软件工程的主要目标是什么?A. 提高软件的运行速度B. 降低软件的开发成本C. 提高软件的可维护性D. 增加软件的功能答案:C2. 软件生命周期包括哪些阶段?A. 需求分析、设计、编码、测试、维护B. 需求分析、编码、测试C. 设计、编码、维护D. 测试、维护、发布答案:A3. 面向对象的软件开发方法中,以下哪个概念不是核心概念?A. 类B. 对象C. 继承D. 过程答案:D4. 软件测试的目的是:A. 发现并修复软件中的缺陷B. 验证软件是否满足需求C. 保证软件的运行速度D. 确保软件的安全性答案:B5. 敏捷开发方法的核心价值是什么?A. 遵循严格的开发流程B. 个人和交互胜过流程和工具C. 详尽的文档胜过工作软件D. 合同谈判胜过客户合作答案:B二、简答题1. 描述软件需求分析的重要性。
答案:软件需求分析是软件开发过程中的关键步骤,它确保了软件产品能够满足用户的实际需求。
通过需求分析,开发者可以明确软件的功能、性能、界面等要求,为后续的设计、编码和测试提供准确的指导。
2. 解释什么是软件的可维护性,并说明为什么它对软件项目至关重要。
答案:软件的可维护性指的是软件产品在生命周期内进行修改、升级和维护的容易程度。
它对软件项目至关重要,因为随着技术的发展和用户需求的变化,软件需要不断地进行更新和改进。
良好的可维护性可以降低维护成本,缩短维护周期,提高软件的生命周期。
三、论述题1. 论述软件项目管理的关键要素。
答案:软件项目管理的关键要素包括项目范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理和变更管理。
有效的项目管理能够确保项目按时、按预算、按质量完成,同时满足所有利益相关者的需求和期望。
2. 分析敏捷开发与传统开发方法的主要区别。
答案:敏捷开发与传统开发方法的主要区别在于敏捷开发强调快速迭代、持续交付和客户合作。
它通常采用较短的迭代周期,允许需求在开发过程中变化,而传统开发方法则更侧重于前期的详细规划和严格的流程控制。
2014年上半年软件设计师考试上午真题(标准参考答案)参考答案:不保证正确。
1.D 2、3、C2^(k-1)≥n+k4、D5、B6、A解析:内存按字节编址,单位为byte,存储器容量按位编址,单位为bit,注意相关的单位换算根据公式:(最高地址-最低地址+1)/单片存储器容量可得注意16进制的换算(400FFFFFH-40000000H+1)*8bit/256K*8bit = (FFFFFH+1)/256K =(100000H)/(256*1024) =(1*16^5)/(256*2^10)=2^20/2^18 =2^2=47.Sniffer,中文可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。
使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。
木马是病毒的一种,同时木马程序又有许多种不同的种类,那是受不同的人、不同时期开发来区别的,如BackOrifice(BO)、BackOrifice2000、Netspy、Picture、Netbus、Asylum、冰河等等这些都属于木马病毒种类.木马程序就是一个网络上的Client/Server的概念。
以下简单介绍一些木马程序的功能:1)远程监控: 可以控制对方的鼠标、键盘和监视对方屏幕。
2)记录密码3)取得电脑主机的信息资料: 如果你在电脑用户账户填上真名的话,对方就可能知道你的姓名了。
4)远程控制5)发送信息8、D 9、B 10、D 11、C12、B表示媒体就是信息的表示方法。
国际电话电报咨询委员会CCITT(Consultative Committee on International Telephone and Telegraph,国际电信联盟ITU的一个分会)把媒体分成5类。
表示媒体(representation Medium)是其中之一,它指传输感觉媒体的中介媒体,即用于数据交换的编码。
如图像编码(JPEG、MPEG等)、文本编码(ASCII码、GB2312等)和声音编码等。
软件工程复习汇总和答案1. 判断题1.编程中应采用统一的标准和约定,降低程序的复杂性。
(√)2.软件可重用性(reusability),是指软部件可以在多种场合使用的程度。
(√)3.一般来说,设计软件时应尽量使用数据耦合,减少控制耦合,限制外部环境耦合和公共数据耦合,杜绝内容耦合。
(√)4.第四代语言(4GL)还局限在某些领域内,如数据库查询语言。
(√)5.编码的依据是详细设计说明书。
(√)6.程序文档应该包括代码的功能、代码的完成者等内容。
(√)7.预防性维护是修改软件,以适应软硬件环境的变化。
(X)8.软件项目定义部分由制定软件项目开发计划、需求分析2个阶段组成。
(√)9.10.软件可移植性(portability),是指软件从一个计算机系统或(环境)移植到另一个上去的难易程度。
(√)11.纠错性维护是改正运行期间发现的潜伏错误。
(√)12.软件开发、设计几乎都是从头开始,成本和进度很难估计。
(√)13.目前我国还没有颁布软件开发标准。
(X)14.耦合度是对软件结构中模块间关联程度的一种度量。
在设计软件时应追求尽可能紧密的耦合的系统。
(X)15.在同一用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应采用不同的形式和风格。
(X)16.在面向对象设计阶段则着重完成“如何做”的问题,也就是着重考虑对象的实现细节。
(√)17.随着软件复杂性的不断提高,软件的维护难度越来越大。
(√)18.软件的可维护性差是软件维护工作量和费用激增的直接原因。
(√)19.20.软件可靠性是指在给定的时间间隔内,程序成功运行的概率(T)21.C语言不是高级语言,C++和Java才是(F)22.第一代人机界面采用可视化图形方式(F)23.软件过程中维护成本占据了最大的比例(T)24.文档不属于软件范畴(F)25.用户对软件需求的描述不精确,往往是产生软件危机的原因之一。
(√)26.目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术(PERT)和关键路径法(CPM)。
一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能B.模块的接口C.数据的名称和用途D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流&功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能B模块的接口C.数据的名称和用途D模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有(C)。
A.只有结构化语言.B有结构化语言和判定树C.有结构化语言、判定树和判定表D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行(B)维护。
A.正确性B适应性C完善性D预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。
A.输入、输出、外部实体和加工B.变换、加工、数据流和存储C.加工、数据流、数据存储和外部实体D•变换、数据存储、加工和数据流13、软件工程管理是对软件项目的开发管理。
2014南信大软件工程复习资料含答案一、填空题1. 软件生存周期一般可以划分为,问题定义、可行性研究、需求分析、设计、编码、测试和软件维护。
2. 基于软件的功能划分,软件可以划分成系统软件、支撑软件、应用软件三种。
3. 可行性研究,应从经济可行性、技术可行性、运行可行性、开放方案可行性和操作可行性等方面研究。
4. 系统流程图是描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件。
5. 数据流图的基本四种成分:数据输入的源点和数据输出汇点、变换数据的处理、数据存储和数据流逐步求精。
6. 结构化分析方法是面向数据流自顶向下进行需求分析的方法。
结构化分析方法使用数据流图DFD与数据字典DD来描述。
7. 继承性是自动地共享类、子类和对象中的方法和数据的机制。
8. 软件详细设计工具可分为3 类,即图形、表格和语言。
9. 为了在软件开发过程中保证软件的质量,主要采取下述措施:基于执行的测试(即软件测试)、复查和管理复审、程序正确性证明。
10. 大型软件测试包括模块测试(单元测试)、集成测试、确认测试和平行运行四个步骤。
11. 软件生存周期模型主要有瀑布模型、增量模型、喷泉模型、螺旋模型、基于知识的模型和变换模型等。
12. 快速原型的使用策略有废弃策略和追加策略。
13. 可行性研究主要从技术可行性、经济可行性、法律可行性、管理可行性等四个方面考虑。
14. 成本--效益分析可用投资回收率、投资回收期、纯收入等指标进行度量。
15. 抽象化包括过程的抽象、数据抽象。
16. 软件维护包含校正性维护、适应性维护、完善性维护和预防性维护等内容。
17. 模块的内聚包含功能内聚、巧合内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、信息内聚。
18. 软件集成测试的方法主要有两种,它们是渐增式测试、非渐增式测试。
二、名词解释1、渐增式测试:把下一个要测试的模块同已经测试好的哪些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进行测试。
软件工程复习资料2014软件概念:是计算机系统中的一个重要组成部分,从系统工程的角度来看,它作为系统元素,与计算机硬件、人、数据库、过程等共同构成计算机系统。
它由两部分组成,计算机程序及其相关文档.其中,计算机程序是按事先设汁的功能和性能要求执行的指令序列,文档是与程序开发、维护和使用有关的图文资料,它又可以分为系统文档,用户文档和web站点.系统文档用于描述系统的结构,用户文档针对软件产品解释如何使用系统,web站点用于下载系统信息。
软件也是用户与硬件之间的接口。
软件危机:软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件.主要体现在软件开发进度无法预测,成本增长无法控制,软件可靠性没有保证,软件维护费用大幅上升,开发人员无限增多,软件产品无法满足用户的要求。
解决办法:采用先进的开发技术和方法;使用好的软件开发工具,提高软件生产率,有良好的组织,严密的管理,各类人员相互配合共同完成任务。
总之,消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施.软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科.原因:(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用不断增加.(4)软件开发技术落后。
(5)生产方式落后.(6)开发工具落后,生产率提高缓慢.软件的发展阶段:a.程序设计阶段(1946~1956)b。
程序系统阶段(1956~1968)c.软件工程阶段(1968年以来).软件工程定义:应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义开发发布和维护的工程或进行研究的学科。
是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念原理技术和方法进行软件的开发与维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。
一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
对2、在需求解析过程中,解析员要从用户那处解决的最重要的问题是给该软件供应哪些信息。
3、需求规格说明书在软件开发中拥有重要的作用,它也能够作为软件可行性解析的依照。
错错4、成立用例模型的步骤包括确定角色、确定用例和绘制用例图。
错5、数据流图成立系统的功能模型,它由数据流、加工和数据存贮组成。
错6、软件配置管理是一组表记、组织和控制改正源程序的活动。
错7、UML 是一种直观化、明确化、成立和文档化软件产物的通用语言。
错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
对9、界线值解析方法是取输入 / 输出等价类的界线值作为测试用例。
对10、面向对象的解析是面向计算机系统成立软件系统的对象模型。
错11、(D )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和保护的过程,它包括方法、工具和过程三个要素。
A 软件过程B 软件测试C 软件生计周期D 软件工程12、 ISO9000 是由 ISO/TC176 拟定的关于( B )和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、 CMM 供应了一个框架,将软件过程改进的进化步骤组织成 5 个成熟度等级。
除第 1 级外,每个等级都包括了实现该成熟度等级目标的若干(B )。
A要点实践 B 要点过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,( D )是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是( A ),它引起人员通信困难、开发开销超支、开发时间超时等问题。
A 固有的B 人为的C 可除掉的D 不能降低的16、在各种不同样的软件需求中,( D )描述了用户使用产品必定要完成的任务,能够在用例模型或方案脚本中予以说明。
A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A )系统。
1、软件危机定义、发生原因、常见表现,如何避免软件危机?(1)软件危机定义:课本Page 8(开发和维护过程)(2)发生原因、常见表现:课本Page 8-9,练习册Page 1(3)如何避免:Page 10 (采用软件工程的方法)答案(由于大部分答案参考ppt,故仅供参考,下同)软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
表现在:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:(1)软件的规模愈发庞大;(2)软件开发的管理困难。
(3)软件本身的独有特点确实给开发和维护造成一些客观困难。
(4)软件开发和维护中千金错误认识和方法的形成可以归结与计算机发展早期软件开发的个体化特点。
(5)软件开发技术落后。
(6)生产方式落后。
(7)开发工具落后,生产率提高缓慢。
如何避免(参考,可以自己总结):从软件开发的工程化方法入手,即用现代工程的概念原理、技术和方法去指导软件的开发、管理和维护,这就是软件工程思想和方法。
具体措施:(1)使用好的软件开发技术和方法;(2)要有良好的组织、严密的管理,各类人员协同配合,共同完成任务;(3)使用好的软件开发工具,提高软件生产率;(4)建立严格的文档资料,重视软件开发过程的阶段评审。
2、软件生命周期模型(软件生命周期?)的组成,每个阶段的内容?(1)组成:Page 21 (2)内容:Page 22—25)答案:软件生存周期定义:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。
软件生存周期一般可分为以下阶段:(1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计)(5)详细设计(6)编码(7)测试(8)维护也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护(1)软件分析时期;任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准。
在此期间,要进行可行性论证,并做出成本估计和经费预算,制定进度安排。
进行可行性研究和项目开发计划,需求分析。
(2)软件设计时期;任务:a.设计软件的总体结构;b.设计软件具体模块的实现算法;c.软件设计结束之前,也要进行有关评审,评审通过后才能进入编码时期。
(3)编码与测试时期;任务:组织程序员将高驻地的软件“翻译”成计算机可以正确运行的程序;并且要经过按照软件分析中提出需求要求和验收标准进行严格的测试和审查。
根据具体软件的特点,决定是否划分成一些阶段,如编码、单元测试、集成测试、验收测试等等。
(4)运行与维护时期。
任务:软件运行过程中可能由于各方面的原因,需要对它进行修改。
3、瀑布模型、原型模型、增量模型的特点,如何选择这些模型?(1)瀑布模型:Page 25-27(特点:Page 28第二点;使用场合:特点的最后一点)(2)原型模型:Page 27-28(特点:Page 27;场合:Page 28三点)(3)增量模型:Page 28)参考答案:瀑布模型:(1)定义:是将软件生命周期各活动规定为依线性顺序联接的若干阶段的模型,是一种整体开发模型。
里程碑或基线驱动或者说文档驱动。
过程逆转性很差,或者说不可逆转。
(2)优点:严格按照生命周期的各个阶段来进行开发,强调了每一阶段的严格性。
这样就能解决在开发阶段后期修正不完善的需求说明将花费巨大的费用的问题。
在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大作用。
(3)缺点:它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
故适用于功能明确、完整、无重大变化的软件开发。
如:编译系统、数据库管理系统和操作系统。
(4)适用场合:●在开发时间内需求没有或很少变化。
●分析设计人员对应用领域很熟悉。
●低风险项目(对目标、环境很熟悉)。
●用户使用环境很稳定。
●用户除提出需求以外,很少参与开发。
原型模型:(1)定义:以某个软件原型为参照模型的开发方法,叫做原型法。
(原型驱动)(2)原理:在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中收集客户意见,修改原型,再让客户试用,反复循环几次,直到客户确认为止。
(3)适用场合:●已有产品/产品原型,只需客户化的项目。
●简单而熟悉的行业或领域。
●有快速原型开发工具。
●进行产品移植或升级。
增量模型:(1)定义:增量模型将软件产品看作一组增量构件,每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。
(2)特点:●任务或功能模块驱动,可以分阶段提交产品;●有多个任务单,这些多个任务单的集合,构成项目的一个总任务书(总用户需求报告)。
(3)适用场合:●在开发过程中,客户接受分阶段交付。
●开发人员对应用领域不熟悉,难以一步到位。
●工期过紧的中等或高风险项目。
●用户可参与到整个软件开发过程中。
●使用面向对象语言或第四代语言。
●软件公司自己有较好的类库、构件库。
4、需求的特点?获取的方法?为什么需求获取很困难?如何解决需求获取困难的难题?(1)需求的特点:●可验证性:可验证性是软件需求的基本属性。
软件需求必须是可验证的,否则软件的评审和测试就没有相应的依据。
但在某些情况下,很难对某些软件需求进行验证或需要的代价很高。
软件需求人员和测试人员应以合理的代价实现需求的验证。
●优先级:软件需求应具有优先级,可以在有限的资源情况下进行取舍。
●唯一性:软件需求应唯一地标识出来,以便在软件配置管理和整个软件生命周期中进行管理。
(2)获取方法:(3)需求获取困难原因:PPT答案:●用户需求具有动态性,即需求的不稳定性。
在整个软件生存周期内,应用软件的需求会随着时间的进展而有所变化。
个别用户,甚至是朝三暮四地变化。
●用户需求具有模糊性,即需求不准确性。
由于用户的素质不是很高,业务流程不很规范,所以需求表达不很清楚也不够明确。
●开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任。
●需求复杂并且庞大。
现代的软件,规模越来越大,导致需求越来越复杂。
课本上答案(Page 62):●需求易变性。
用户在开始时提出一些功能需求,当对系统有一定的理解后,会提出一些需求。
以后随着理解的深入而不断提出新的需求。
用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一对待性和不完备性。
●问题的复杂性;●交流障碍。
进行需求分析的人员具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。
●不完备性和不一致性。
用户各类人员对于系统的要求所处的角度不一样,对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾。
(4)解决需求获取困难的方法:5、DFD的画法及如何将DFD图转换成功能结构图?(1) DFD图的画法(课本Page 71)(第四章PPT)●数据流图DFD的描述符号主要只有四种,即:a. 数据源或数据潭b. 数据流动的连线c. 数据加工或处理泡d. 输入或输出文件●图例●方法:采用的是”自顶向下“逐层画法。
即先画出的顶层数据流图,再逐层画出的底层数据流图,具体地描述上层系统的细节。
●注意事项:加工和处理框上至少有一个输出数据流和一个输入数据流;注意父/子图的平衡(父图中某个加工的输入输出数据流同相应的子图的输入输出相同,也就是说子图中所有输入数据流必须是父图中相应加工的输入)。
(2)DFD图转换成功能结构图(课本Page 111-116)(PPT 第七章)具体方法看第七章PPT。
变换型系统结构图:通过变换分析技术,将中心变换型的DFD图转换而得的SC图,称为变换型系统结构图。
事务型系统结构图:通过事务分析技术,将事务处理型的DFD图转换为的SC图,称为事务型的系统结构图。
两类图的区别:变换型系统结构图明显分为输入、中心变化和输出3部分;事务型系统结构图则是某个变换将它的输入分离成若干个发散的输出数据流。
变换分析技术(将DFD图转换成变换型系统结构图的方法,DFD图中含有变换流的情况)事务分析技术(将DFD图转换成事务型系统结构图的方法,DFD图中含有事务流的情况)而实际的DFD图往往是既包含变换流又包含事务流(称为混合DFD图)。
PPT上的M代表中心加工模块,I代表输入模块,T代表处理加工模块,O代表输出模块。
对于变化型系统结构图而言,一个M应该包含一个I、一个T、一个O,属于包含关系,因此箭头应从M分别指向I、T、O(容易出错)。
一个功能模块的输入可能是来源于另一个功能模块的输出。
6、面向对象的基本特征,并能用实际的例子说明这些特征?面向对象的基本概念: 面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。
而面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。
面向对象方法的基本思想是,从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
面向对象核心概念: (1)对象(2)类(3)继承(4)聚集(5)消息。
面向对象 = 对象 + 类 + 继承 + 聚集 + 消息面向对象方法的基本特征:①从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。
②事物的静态特征(即可以用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务(或操作)表示。
③对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其内部细节(称作封装)。
④对事物进行分类。
把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。
⑤通过在不同程度上运用抽象的原则(较多或较少地忽略事物之间的差异),可以得到较一般的类和较特殊的类。
特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。
⑥复杂的对象可以用简单的对象作为其构成部分,称作聚合。
⑦对象之间通过消息进行通信,以实现对象之间的动态联系。
⑧通过关联表达对象之间的静态关系。
7、白盒测试、黑盒测试的定义以及白盒测试具体的方法?练习册Page 318-320;课本Page 457-461;第十章PPT(1)定义:白盒测试:把测试对象看作一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结构和数据结构是否和预期相同。