软件需求工程 期末复习资料

合集下载

软件需求工程 期末复习资料

软件需求工程 期末复习资料

☆什么是软件需求工程?请说明软件需求工程中各阶段的主要任务。

p51 定义一般定义:指应用工程化的方法、技术和规格来开发和管理软件的需求。

需求工程的目标:获取高质量的软件需求。

与软件工程中传统的需求分析概念相比,需求工程突出了工程化的原则,强调以系统化、条理化、可重复化的方法和技术进行与软件需求相关的活动,从而有利于提高所有与软件需求相关的活动及其过程的可管理性,降低需求开发和管理的难度和成本。

其它定义:Alan.Davis:直到(但不包括)把软件分解为实际架构组建之前的所有活动,即软件设计之前的一切活动。

该定义虽然没有详细说明需求工程是什么,但其给出了需求工程的范围。

Lan K. Bray:对问题域及需求做调查研究和描述,设计满足那些需求的解系统的特性,并用文档给予说明。

这个定义明确指出了需求工程的任务就是获取、分析和表达软件的需求。

需求工程= 需求的开发活动+ 需求的管理活动2 各阶段主要任务需求获取阶段:获取用户的需求信息。

需求分析阶段:分析和综合已经收集到的需求信息。

需求建模阶段:根据待开发软件系统的需求利用某种建模方法建立该系统的逻辑模型。

需求定义阶段:根据用户需求编写出需求规格说明。

需求的形式化描述阶段:用严格的数学知识和符号来构造系统的需求模型。

需求验证阶段:检验软件需求规格说明。

需求管理阶段:开发人员在与提出更改的请求者协商的基础上,评估需求变更带来的潜在影响及可能的成本及费用,然后实施更改,一级有效的管理需求规格说明文档和跟踪更改需求的状态。

☆什么是软件需求?软件需求有哪些类型,并分别给出它们的定义。

p2软件需求的定义:A. Davis:软件需求是从软件外部能发现的,软件所具有的,满足于用户的特点、功能及属性等的集合。

I. Sommerville:需求是问题信息和系统行为、特性、设计和实现约束的描述的集合。

M. Jackson等:需求是客户希望在问题域内产生的效果。

IEEE软件工程标准:(1)用户解决问题或达到目标所需的条件或能力;(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。

软件工程期末复习资料非常全

软件工程期末复习资料非常全

1、下列哪一模型是软件的基础模型A.瀑布模型B.快速原型C.增量模型D.螺旋模型2、划分软件生存周期的阶段时所应遵循的基本原则是A.各阶段的任务尽可能相对独立B.各阶段的任务在时间上连续C.各阶段的任务尽可能相关性D.各阶段的任务在时间上相对独立3、下列哪个办法不属于解决软件危机的途径之一A.采用软件工程的解决途径B.研制新一代智能计算机C.采用面向对象的软件设计方法D.大力扶持软件企业4、下列哪个不属于软件工程的内涵之一A.扶持培养软件高手的学院B.开发既可靠又能有效运行的软件C.应用完善的科学与工程原理D.经济地开发软件5.造成大型软件开发困难的根本原因在于A.开发人员缺乏足够的开发经验B.项目开发进度不合理C.软件系统的复杂性D.对软件开发的资金投入不足6.软件会逐渐退化而不会磨损,其原因在于A.软件备件很难订购B.不断的变更使组件接口之间引起错误C.软件错误在经常使用之后会逐渐增加D.软件通常暴露在恶劣的环境下7.下面说法正确的是A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功D.购买大多数计算机系统所需的硬件比软件更昂贵8.Ariane 5火箭发射失败的事例告诉我们A.(2)软件后备系统可以通过复制生成B.(3)软件重用必须重新进行系统论证和系统测试C. 选项(1)和(3)D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制9.软件危机的主要原因是A.软件本身的特点及开发方法。

B.软件工具落后。

C.软件生产能力不足。

D.对软件的认识不够。

10.下面的描述正确的是A.软件质量是在开发过程中逐渐构建起来的。

B.软件质量是由产品的功能、性能、易用性等外在特性决定的。

C.运行正确的软件就是高质量的软件。

D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。

软件需求期末考试题及答案

软件需求期末考试题及答案

软件需求期末考试题及答案# 软件需求期末考试题及答案一、选择题(每题2分,共20分)1. 软件需求分析的主要目的是:A. 确定软件的功能B. 确定软件的性能C. 确定软件的界面D. 确定软件的成本答案: A2. 以下哪项不是需求分析阶段的输出?A. 需求规格说明书B. 系统设计文档C. 用户手册D. 数据字典答案: B3. 需求变更控制的目的是什么?A. 降低成本B. 减少开发时间C. 确保需求的一致性和完整性D. 提高软件质量答案: C4. 以下哪个不是功能性需求的例子?A. 系统必须能够处理在线支付B. 系统必须支持多语言界面C. 系统必须在1秒内响应用户请求D. 系统必须能够存储用户数据答案: C5. 非功能性需求通常包括以下哪些方面?A. 可用性B. 性能C. 安全性D. 所有以上选项答案: D...(其他选择题省略)二、简答题(每题10分,共30分)1. 简述什么是软件需求,并区分功能性需求与非功能性需求。

答案:软件需求是指用户对软件系统的功能、性能、行为和约束的详细描述。

功能性需求描述了软件系统必须执行的任务,例如处理数据、执行计算或与用户交互。

非功能性需求则描述了软件的属性,如性能、安全性、可用性、可靠性等,这些属性通常不涉及软件的具体功能,但对软件的整体表现至关重要。

2. 解释什么是需求变更,以及如何处理需求变更。

答案:需求变更是指在软件开发过程中,由于各种原因(如市场变化、用户需求变化、技术进步等)导致的对原始需求文档的修改。

处理需求变更通常包括以下几个步骤:识别变更、评估影响、与利益相关者沟通、更新需求文档、重新评估项目计划、重新测试以及重新部署。

3. 描述需求获取的方法,并给出一个具体的例子。

答案:需求获取是指从用户或其他利益相关者那里收集需求的过程。

常见的方法包括访谈、问卷调查、观察、原型开发、焦点小组讨论等。

例如,通过访谈,开发团队可以直接与用户交谈,了解他们的工作流程、痛点和期望的功能,从而获取需求。

软件需求过程期末考试必备

软件需求过程期末考试必备

软件需求分析习题汇总目录一、单项选择题二、填空题三、判断题四、名词解释题五、问答题六、案例分析题一、单项选择题1、软件生产中产生需求问题的最大原因在于对应用软件的理解不透彻或应用不坚决;A复杂性B目的性 C模拟性D正确性2、需求分析的目的是保证需求的 ;A目的性和一致性 B完整性和一致性C正确性和目的性 D完整性和目的性3、系统需求开发的结果最终会写入 ;A可行性研究报告 B前景和范围文档C用户需求说明 D系统需求规格说明4、现实世界中的构成了问题解决的基本范围,称为该问题的问题域;A属性和状态B实体和状态C实体和操作D状态和操作5、功能需求通常分为三个层次,即业务需求、用户需求和 ;A硬件需求B软件需求 C质量属性 D系统需求6、比较容易发现的涉众称为初始涉众,又称为 ,通常包括客户、管理者和相关的投资者;A关键涉众B涉众基线 C普通涉众 D一般涉众7、如果在最终的物件Final Artifact产生之前,一个中间物件Mediate Artifact被用来在一定广度和深度范围内表现这个最终物件,那么这个中间物件就被认为是最终物件在该广度和深度上的 ;A模拟 B构造 C原型 D模型8、按照使用方式进行分类,原型可分为:演示原型、、试验原型和引示系统原型;A非操作原型B系列首发原型C选定特征原型D严格意义上的原型9、按照功能特征进行分类,原型可分为:、非操作原型、系列首发原型和选定特征原型;A拼凑原型B样板原型C纸上向导原型D严格意义上的原型10、按照开发方法进行分类,原型可分为:演化式原型和抛弃式原型,其中抛弃式原型又被细分为 ;A演示原型和试验原型 B系列首发原型和选定特征原型C探索式原型和实验式原型 D样板原型和纸上向导原型11、原型的需求内容可以从三个纬度上分析:即 ;A外观、角色和实现 B开发、实现和作用C成本、技术和实现 D需求、作用和角色12、当用户无法完成主动的信息告知,或与需求工程师之间的语言交流无法产生有效的结果时,有必要采用 ;A民族志 B观察法 C话语分析 D任务分析13、以下不是情景性的重要性质A突现 B涉身 C完善 D模糊14、以下是情景性的重要性质A全局 B开放 C交互 D即时15、下列不是需求获取常见的模型驱动方法A面向目标的方法 B基于场景的方法;C基于用例的方法 D基于采样的方法16、下列属于定量硬数据A工作手册 B规章手册 C统计报表 D备忘录17、下列属于定性硬数据A数据收集表 B月报表 C年报表 D规章手册18、功能目标可以分为 ;A安全目标和可用性目标 B满足型目标和信息型目标C软目标和硬目标 D维护目标和实现目标19、在表达软目标的分解和细化时使用的AND Contribution链接和OR Contribution链接,Contribution的作用是 ;A积极的 B消极的 C积极的或消极的D不能确定20、AND链接将一个父目标连接到一系列细化的子目标,意思是如果能够满足所有细化的子目标,那么将父目标;A无法确定 B阻碍 C不能满足 D足以满足21、OR链接是将一个父目标连接到一系列细化的子目标,意思是如果能够满足所有细化子目标中的 ,那么将足以满足父目标;A每一个B任何一个 C特定的D某一个22、下列选项中, 不是在目标模型中使用的其他模型元素;A行为者 B场景 C操作 D概念23、面向目标方法的目标分析阶段的主要任务是 ;A获取目标 B确定解决方案C建立目标模型 D发现问题和缺陷24、场景的分类框架将场景方法从场景的 4个方面进行了分类和描述;A形式、目的、内容和生命周期 B外观、目的、内容和生命周期C描述、目的、内容和形式 D描述、外观、目的和内容25、场景的形式是指场景的表达模式,从形式上分为两个方面:A内容和目的B内容和生命周期C描述和外观D描述和目的26、描述场景所使用的表示法要符合正规性要求,一般可使用非形式化语言、半形式化语言和形式化语言;在实践中, 是主要的描述方式;A形式化的程序语言 B非形式化的自然语言C形式化的图形工具 D非形式化的设计语言27、外观是指场景被表达出来时的效果,主要有三种类型;A静态、动态和结构化 B线性、非线性和交互C静态、动态和动静结合D静态、动态和交互28、场景的内容是指场景所表达的知识类型;它被分为6个不同的方面;下列不是场景的内容;A主要关注点 B环境范围 C目的 D抽象层次29、需求工程利用场景的目的可能有三种:即: ;A描述、探索和解释 B描述、表示和探索C描述、探索和发现 D表示、解释和证明30、使用解释性场景在需求分析时能够 ,或者被用于进行需求的验证;A提高模型的复杂性 B降低模型的复杂性C提高预见性 D降低编程量31、下列不是场景方法在需求工程中的应用;A帮助进行详细的需求分析B编写系统需求规格说明C结合面向目标的方法,指导需求获取活动的开展D组织需求获取得到的信息32、下列是组织场景时可用的场景关系;A合取关系B定性关系 C定量关系 D演绎关系33、与其他的场景方法相比,用例最大的特点是采用了的描述方式;A静态非结构化文本 B动态非结构化文本C静态结构化文本 D动态结构化文本34、用例之间的关系主要有三种;A包含、扩展和简化 B合取、析取和扩展C包含、多态和继承 D包含、扩展和泛化35、分析的活动主要包括识别、定义和结构化,它的目的是获取某个可以转换为知识的事物的信息,这种分析活动被称为 ;A需求信息获取 B建立软件系统解决方案C需求信息转化 D建立需求分析模型36、是建模最为常用的两种手段;A具体和抽象 B抽象和分解C分解和细化 D抽象和细化37、抽象通过强调本质的特征, 了问题的复杂性;A调整 B避免 C增加 D减少38、需求分析仅仅需要描述解决方案,不需要探索实现细节的情况下,分析模型又是的,尤为适用;A形式化 B半形式化 C结构化 D非结构化39、上下文图描述系统与环境中外部实体之间的界限和联系;它从现实世界的角度说明了系统的 ,并确定了所有的输入和输出;A环境与外观 B边界和联系C边界和环境 D输入和输出40、是结构化分析方法的核心技术,它表明系统的输入、处理、存储和输出,以及它们如何在一起协调工作;A数据流图DFD B实体联系图ERD C状态转换图D上下文图41、结构化、信息工程和面向对象三种方法学下的需求分析技术都是的;A面向问题域 B面向解系统 C面向设计 D面向需求42、使用面向问题的技术对问题世界的建模就被称为需求阶段的分析;A前期 B中期 C后期 D全过程43、使用面向解系统的技术对软件系统解决方案的描述称为需求阶段的分析;A前期 B中期 C后期 D全过程44、需求分析活动的一个重要任务是进行 ,明确用户需求的隐含信息,展开为明确的对软件系统的行为期望,即系统需求;A需求整理 B需求细化 C需求获取 D需求分析45、在分层结构中,DFD定义了三个层次类别的DFD图:、0层图和N层图;A1层图 B底层图 C上下文图D顶视图46、因为数据存储是系统内部的功能实现,所以在将系统视为黑盒的情况下,上下文图中不会出现 ;A实体 B数据存储实例 C需求信息 D过程处理47、数据建模技术能够弥补过程建模在方面的缺陷,它描述数据的定义、结构和关系等特性;A需求分析 B数据转换 C数据说明D数据分析48、;概念实体是一种抽象概念,不考虑概念背后的物理存在,所以通常不包含与之相关联的其他 ;A模型 B特征即属性 C关系 D处理49、在ERD建模中,实体通常所指的就是 ;A逻辑实体 B概念实体 C物理实体 D进程实体50、ERD中属性是实体的特征,不是数据;属性会以一定的形式存在,这种存在才是数据,被称为属性的 ;A域B实例 C说明 D值51、ERD中关系的度数Degree是指参与关系的实体数量,是度量关系的一个指标;A模型 B复杂度 C精确度 D属性值52、ERD中关系的基数分为最大基数和最小基数;最大基数又被称为 ;A键约束 B参与约束C自然约束 D一般约束53、在实体之间建立关系时,可能会产生一些附带的实体,被称为关联实体,最常见的形式是 ;A逻辑实体 B进程实体 C概念实体 D自然实体54、在实现ERD与过程模型同步的技术中, 是一种较为常见的技术;A用例图 B数据流图 C功能/实体矩阵 D微规格说明55、下列不是用例模型中的关系A属性 B关联 C泛化 D包含56、系统边界是指一个系统所包含的系统成分与系统外事物的分界线;用例模型使用一个来表示系统边界,以显示系统的上下文环境;A圆形框 B菱形框 C虚线框 D矩形框57、UML使用的行为模型有三种,即: ;A交互图、状态图和顺序图 B顺序图、通信图和时间图C交互图、状态图和活动图 D交互概述图、通信图和时间图58、项目的前景和范围文档、用户需求文档都被视为属于 ,重点都是用户的现实世界;A开发文档 B需求文档 C前景文档 D用户文档59、系统需求规格说明文档、软件需求规格说明文档、硬件需求规格说明文档、接口需求规格说明文档和人机交互文档一起被用于系统开发的目的,都被认为是开发文档;A开发文档 B需求文档 C过程文档 D用户文档60、下列不是需求规格说明文档的读者A项目管理者 B编程人员 C销售商 D律师二、填空题1、传统的需求分析方法都是从设计领域转入分析领域的;2、面向专业用户的纯工具型软件分析阶段的主要目的是为充分利用创新优势而进行巧妙的功能安排;3、面向普通用户的纯工具型软件进行分析的主要目的是进行方案权衡,寻找一套切实有效的功能配置;4、应用型软件分析阶段的主要目的是发现人们利用软件的原因目的,找出需要软件解决的问题,理解应用环境中的领域知识,保证功能的模拟性;5、需求工程是所有需求处理活动的总和,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终反映软件被应用后与其环境互动形成的期望效应;6、软件需求开发用来确定系统需求中应该由软件满足的部分,将其映射为软件行为,产生软件需求规格说明;7、约束是不受解系统影响,却会给解系统带来极大影响的问题域特性;8、优秀的需求应该具备7个特性,即完整性、正确性、精确性、可行性、必要性、无歧义和可验证;9、所有对软件系统的开发和应用具有发言权和决定权的人统称为涉众;10、按照媒介载体进行分类,原型可分为:样板原型和纸上向导原型;11、演示原型主要被用在项目启动阶段;12、演示原型都是被用来展示用户想象中的系统视图,所以它要能够表现用户界面的重要特征;13、,如果一个问题的技术解决方案是不清晰的,演示原型也可以被用来展现相应的细节功能以使用户确信该问题解决的可能性;14、通常来说,如果用户需求出现了模糊、不清晰、不完整等具有一定不确定性的特征,就可以考虑使用原型方法;15、角色是指原型物件在用户工作中的价值,也就是说它为什么对用户是有用的;16、外观是指用户对原型物件的具体感觉体验,即用户在使用原型物件时会看到什么、听到什么和感觉到什么;17、实现是指原型物件完成功能的细节技术和方法;18、使用演化式原型方法,在开发时就需要注意原型的健壮性和代码的质量;19、使用实验式开发方法,需要实现多种技术方案,考察重要的系统的质量属性;20、选择使用探索式开发方法,需要尽可能地考虑各种不同的设计选项,比较不同选项下的用户反馈;21、原型方法的最大优点是能够及早地解决系统开发中的不确定性,从而降低软件项目失败的风险;22、航空调度、证券交易、医疗手术控制等复杂的协同问题都具有突现的情景性;23、民族志的一个主要应用目的就是研究和解决复杂的协同问题;24、复杂的工作总会同时存在着正常流程和异常流程,异常流程大多是一些特殊情况下的处理,限定了异常处理的上下文环境,即异常处理具有局部的情景性;25、有很多重要工作的进行需要用户具备一定的认知,认知要求已经成了用户工作必备的部分,即工作具有涉身的情景性;26、采样观察是最简单的观察方法,应用目的是发现异常流程,验证用户所述知识和实际的一致性,以及发现默认知识;27、时间采样允许需求工程师建立指定的时间间隔来观察用户的活动情况;28、文档审查主要获取对象包括相关产品的需求规格说明、硬数据和客户的需求文档;29、文档分析通常是数据建模方法的一个基础部分,它是通过检查采集的硬数据来确定潜在的需求;30、如果当前存在一份客户的需求文档,就可以使用需求剥离技术,从需求文档中抽取单个的需求并加入到新的需求文档之中;31、需求工程师可以使用模型驱动方法来进行信息的整理和归类,其中模型驱动方法所建立的模型是进行信息整理和归类的很好的框架依据;32、模型驱动方法的模型是在前期需求阶段的分析中建立的;33、目标模型的一个核心要素是元素之间的关系,称为链接;34、目标模型的链接有两类:一类是目标之间的链接;另一类是目标与其他模型元素之间的链接;35、面向目标方法的处理过程可以分为三个阶段:目标获取、目标分析即目标模型的建立和目标实现;36、目标实现阶段的主要任务是收集与目标相关的需求信息,讨论可能的候选解决方案,确定最终的系统详细需求和解决方案;37、场景具有重点描述真实世界的特征,它利用情景、行为者之间的交互、事件随时间的演化等方式来叙述性地描述系统的使用;38、静态外观的场景被展现为一个或者数个描述性的文本或者图片;39、动态外观的场景会被以动态的方式展现出来,人们可能会要求按时序向前或者向后浏览场景,也可能会要求跳转到场景的某一个时刻进行观察;40、交互外观的场景提供交互性,它允许用户在一定程度上控制和改变场景的变化时序或者效果;41、具体场景,又称为实例场景,是对个别行为者、事件、情节的细节描述;42、抽象场景,又称为类型场景,是以经验中的类别和抽象概念来描述事实;43、探索性场景可以用来进行需求获取和需求建模与分析;44、每个用例是对相关场景集合的叙述性的文本描述,这些场景是用户和系统之间的交互行为序列,帮助实现用户的目的;45、用例是场景方法中的一种,是静态的结构化文本描述;46、在高层的功能需求获取完备之前,用例的产生方式中不允许使用功能分解方式;47、单个用例描述了系统的功能片段,系统的所有用例基于一定的关系组织起来,建立用例模型,就可以描述整个系统的功能;48、原有用例和新建立的抽象用例的关系即为包含关系;49、在需求工程中,主要产生三类重要的文档:项目前景和范围文档、用户需求文档以及需求规格说明;用例文档通常被用来代替用户需求文档,起到记录、交流领域信息和用户期望的作用;50、需求获取得到的信息和需求开发应该建立的软件系统解决方案之间有着很大的差距;需求分析就是用来解决这个差距的需求工程活动;51、需求分析的根本任务是:建立分析模型并创建解决方案;52、分解将单个复杂和难以理解的问题分解成多个相对更容易的子问题,并掌握各子问题之间的联系;53、基于软件构建单位及其之间的关系建立的模型,用来说明软件逻辑上的构建方式和实现方式,由于它使用的组元及其关系都是软件的元素,因此它是来自于软件的模型,称为计算模型;54、模型语言的三要素:语法、语义、语用;其中语用给出了一个模型元素描述的更宽广的上下文,以及影响该模型元素意义的约束和假定;55、互相之间建立了语义联系的多个模型,集成在一起通常被称为视图;56、需求分析方法主要有:结构化方法、信息工程方法和面向对象方法;其中面向对象方法是目前工业界使用的主流方法;57、信息工程和结构化方法的本质差别在于解决问题的策略不同;58、前期需求阶段分析的重点是理解问题世界,因此它关注的是整个问题世界,注重于系统的环境、开发组织的业务背景、涉众的特征以及目标等等,软件系统只是整个背景下的一个要素;59、后期需求阶段分析关注的是解系统解决方案的建立,因此它以软件系统为中心,注重于分析系统的内部功能以及它与环境的互动,是对系统功能的详细信息的分析;60、以软件复用为核心,建立产品族的方法被称为产品线;61、需求协商活动既包括对目标冲突的处理,也包括对需求细节冲突的处理;62、微规格说明被用来描述DFD过程分解结构中最底层过程的处理逻辑;63、DFD中所有的外部实体联合起来构成了软件系统的外部上下文环境,它们与软件系统的交互流就是软件系统与其外部环境的接口,这些接口联合起来定义了软件系统的系统边界;64、数据流是指数据的运动,它是系统与其环境之间或者系统内两个过程之间的通信形式;65、DFD的0层图中的每个过程都可以进行分解,被分解的过程称为父过程,分解后产生的揭示更多细节的DFD图称为子图;66、DFD的0层图通常被用来作为整个系统的功能概图;67、为了保证DFD图的可理解性,0层图应该被描述的简洁、清晰,所以在描述复杂的系统时,0层图中不应出现太过具体的过程和数据存储;68、DFD中对0层图的过程分解产生的子图称为1层图;69、数据建模建立的模型称为数据模型,是问题域和解系统共享的知识集合,通常能够反映企业业务的核心知识;70、数据模型的内容是问题域和解系统所共享的知识模型,可以用问题域的语言来解释,也可以用解系统的语言来解释,还可以用介于问题域和解系统之间的中立语言来解释;71、在需求工程中,数据建模建立的是概念数据模型和逻辑数据模型,不涉及物理数据模型;72、ERD的逻辑实体是对概念实体的细化,拥有完整的特征描述;73、数据建模中对行为和事件的建模需要是为了了解它们在某些时刻的快照或者运行环境信息,而不是它们所体现出来的功能和达成的效果,所以称这类实体为进程实体;74、ERD中属性就是可以对实体进行描述的特征,一系列属性的存在集成起来就可以描述一个实体的实例;75、ERD中属性取值的受限制范围称为域Domain;76、ERD为实体指定一个属性或多个属性的组合,可以用来唯一地确定和标识每个实例,这些属性或属性的组合称为实体的标识符,又称为键;77、一个实体可能有多个键,这些键都被称为候选键;78、通常人们从多个候选键中选择和使用固定的某一个键来进行实例的标识,这个被选中的候选键被称为主键,没有被选做主键的候选键被称为替代键;79、实体实例大多数属性的值都是需要从现实中获取的,称为存储属性;80、有些实体实例的属性的值是可以由其他属性的值计算得出的,称为导出属性;81、关系是存在于一个或多个实体之间的自然业务联系;82、只有一个实体参与的关系存在于实体的不同实例之间,称为一元关系,又称为递归关系;83、ERD中关系的基数分为最大基数和最小基数;最小基数又被称为参与约束;84、ERD中一个实体在关系中的最大基数是指,对关系中任意的其他实体实例,该实体可能参与关系的最大数量;85、ERD中一个实体在关系中的最小基数是指,对关系中任意的其他实体实例,该实体可能参与关系的最小数量;86、ERD中被关系影响的实体主要是弱实体和关联实体;87、用例模型的基本元素有四种:用例、参与者、关系和系统边界;88、UML行为模型是用例模型的实现,以更加详细的方式说明用例所描述的系统行为;89、UML行为模型的活动图是依据处理流程进行的用例实现;90、UML行为模型的交互图通常描述的是单个用例的典型场景;91、接口需求规格说明文档是对整个系统中需要软、硬件协同实现部分的详细描述;92、优秀的需求规格说明文档应该具备:正确性、无歧义、完备性、一致性、根据重要性和稳定性分级、可验证、可修改、可跟踪等特性;93、需求验证常见方法有:需求评审、原型与模拟、测试用例开发、用户手册编制、利用跟踪关系和自动化分析;94、评审又被称为同级评审,是指由作者之外的其他人来检查产品问题的方法;95、在系统验证中,评审是主要的静态分析手段,所以评审也是需求评审的一种主要方法;96、需求基线的维护主要包括配置管理和状态维护;97、需求跟踪是以软件需求规格说明文档为基线,在向前和向后两个方向上,描述需求以及跟踪需求变化的能力;98、从需求向后回溯前向跟踪的两种联系之一说明软件需求来源于哪些涉众的需要和目标;99、后向跟踪是指需求被定义到软件需求规格说明文档之后的演化过程;100、后向跟踪包括两种联系:从需求向前跟踪和回溯到需求的跟踪;三、判断题1、需求工程包括需求获取和需求开发两个方面;×2、需求验证是需求工程中最后一个活动;×3、软件系统能够与问题域进行交互和相互影响的原因在于,软件系统中的某些部分对问题域中的某些部分具有模拟特性;√4、规格说明是问题域为满足用户需求而提供的解决方案,规定了解系统的行为特征;×5、业务需求具有明显的目的性和较高的抽象性,经过明确和细化的处理,可以直接转化为系统需求;×6、需求开发的一些特性决定了需求开发过程只能是一个简单的线性增量过程;×7、对于需求不确定性比较小的项目,用户参与可以取得比较好的效果,但对于需求不确定性比较大的项目,用户参与反而可能带来阻碍作用;×8、按照构建技术进行分类,原型可分为:水平原型和垂直原型;√9、严格意义上的原型主要被用在需求分析阶段;√10、要完成相同的功能,构建抛弃式原型比构建演化式原型所花费的代价要大得多;×11、水平原型方法仅仅实现选定功能实现的所有层次,能够处理较大范围的功能;×12、垂直原型方法会触及选定功能所有层次中的某些特定层次,处理的功能范围通常较小;×13、建立外观原型时重在原型的用户界面和交互方式,原型的功能和技术实现细节就会被简化处理;√14、如果选择的开发方法是实验式或者探索式开发方法,应该尽量花费最小的代价,争取最快的速度,忽略或简化不重要的功能处理;√15、原型修正主要依据评估人员的反馈,可以忽略事先的原型调整计划;×16、文档审查是一种传统的需求获取方法,是专门针对文档进行的需求获取活动;√17、由于文档是来自于当前计算机或手工系统的产物,因此它是正确的,也正是客户所需要的;×18、成功的需求获取任务不仅要求成功地执行每一次具体的需求获取行为,还要求成功地处理多次获取行为之间的关系;√19、软目标是一类无法清晰判断是否满足的目标,所以可以用AND和OR链接直接应用于软目标;×20、子目标的实现只能促进父目标的实现;×21、AND和OR链接用于描述目标的分解和细化关系;√22、目标的发现并是一个自上而下分解的过程,也就是一个不断发现和细化的过程;×23、对系统的现状和背景进行分析往往能够发现重要的目标,得到一些明确的问题和缺陷,它们的反面就是系统需要实现的目标;√24、场景被人们广泛接受的原因是因为人们更倾向于会对真实事件和真实事物的描述产生反应;√25、描述场景时所使用的常见媒介形式主要有:叙述性的自由文本、结构化文本;强限制文本、表格、图表、图像等;√26、在实践中,以动态的场景外观为主;×27、场景内包含的知识只能是关于未来的;×28、描述性场景的目的是为了记录已经得到的需求,即整理每次需求获取行为中得到的信息;√29、UML就是以用例来捕获系统所有的系统需求的;×30、用例的内容只能包含有正常流程,而不能包含有异常流程;×31、用例可以用于各种目的的应用,包括描述、探索和解释;√32、用例是在对现实世界的探索中或者是在对需求规格说明的解释中产生的,是通过功能分解的方式创建的;×33、抽象用例是不能被实例化的,它必须被包含在其他用例中才能得以执行;√34、用例间的泛化关系是指子用例继承了父用例的特征;×并增加了新的特征35、抽象一方面要求人们关注重要的信息,同时又不能忽略次要的内容;另一方面也要求人们将认知保留在适当的层次,屏蔽更深层次的细节;×36、由于计算模型的形式化特征不适合于需求工程阶段,因此计算模型不适合用于需求分析中的建模;√。

软件需求工程考试复习资料:复习提纲.doc

软件需求工程考试复习资料:复习提纲.doc

第二章:描述1、需求的定义a用户为了解决问题和解释或达到某些目标所需要的条件能力b系统或系统部件为了满足合同,标准,规范或其他正式文档所规定的要求而需要具备的条件或能力c对a或b中的一个条件或一种能力的一种文档表述。

2、需求的内涵:问题域、解系统与共享现象a要解决问题,就需要改变现实中某些实体的状态,或者改变实体状态变化的演进顺序,使其达到期望的状态和理想的演进顺序。

这些实体与状态构成了问题解决的基本范围,称为该问题的问题域。

b软件系统通过影响问题域,能够帮助人们解决问题,称为解系统。

c共享现象:通过映射建立的共同知识,就是问题域中与解系统中的共享现象。

3、分类:类别有:功能需求,性能需求,质量需求,对外接口,约束4、功能需求的三个层次:5、需求工程的路线图问题分析:明确问题定义业务需求制定解决方案及系统特性->需求获取:用户需求,性能需求质量属性对外接口约束问题域特性->需求分析:系统需求系统模型->文档化与验证第四章:描述6、需求获取的困难用户和开发人员的背景不同,立场不同首先是知识理解的困难。

尽力去研究应用的背景,理解组织的状况,形成一个能够和用户进行有效沟通的粗略的知识框架默认(Tacit)知识现象利用有效的获取方法与技巧(角色扮演、观察等)来发现并获取默认知识普通用户缺乏概括性、综合性的表述能力普通用户的知识结构就相对局限于一些具体的业务细节善于表达具体业务的细节问题专家用户的知识结构因其渊博性而具有概括性和广泛性能够回答概括性和综合性的问题开发人员在与用户接触之前就先行确定获取的内容主题,然后设计具体的应用环境和场景条件,由用户根据细节业务的执行来描述问题、表达期望。

7、需求获取的流程第五章8、定义项目前景和范围的流程:描述9、问题分析:应用第六章:描述+应用10、涉众分析的流程11、涉众识别的方法12、涉众评估的内容13、涉众选择的策略第7——9章:描述+应用14、面谈的问题类型15、面谈的结构16、面谈的优缺点17、原型的各种特征分类18、原型的优缺点利用原型的好处有:及时、有力的响应用户需求的变化;减少返工;帮助控制不完整需求所带来的风险;可以将一个大的难以处理的开发过程细分成一些更小更容易处理的步骤;减少开发成本,提高经济效益;增加开发者之间的交流,帮助确定技术解决方案的可行性;有效的识别风险和解决风险,帮助进行风险管理;提高用户在软件开发中的参与程度。

软件需求 期末复习

软件需求 期末复习

软件需求考试总复习1、为什么软件需求这么难?客户说不清楚需求需求自身经常变动分析人员或客户理解有误2、软件需求的定义软件需求=业务知识+问题列表+其他因素.业务知识包括业务事件、业务实体和业务规则;问题列表是用户在工作中遇到的困难与障碍,这也是软件开发中需要解决的问题;其他因素包括了一些设计约束和非功能方面需求。

3、需求的层次业务需求、用户需求、软件需求需求层次的产物:业务需求是需求定义的产物,用户需求是需求捕获的产物,软件需求是需求分析与建模的产物.4、软件需求的三种类型功能需求:开发人员要实现什么非功能需求:对产品功能描述的补充设计约束:限制了开发人员设计和构建系统时的选择范围5、软件开发的各个阶段,为什么只有需求阶段称为工程?需求工程是随着计算机的发展而发展的,在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视.后来软件开发引入了生命周期的概念,需求分析成为其第一阶段.随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。

人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,它贯穿于系统开发的整个生命周期。

需求分析是介于系统分析和软件设计阶段之间的桥梁.一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础.良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。

所以才只有需求成了工程!6、需求工程划分为哪两个部分需求开发、需求管理7、需求开发包括哪些内容需求获取、需求分析、需求规约(编写需求规格说明书)和需求验证(确认).8、需求管理包括哪些内容基线管理、变更管理和需求跟踪。

9、如何评价需求的好与坏(优秀需求的特点)完整性、正确性、可行性、有优先次序、无歧义、可验证性、确定性10、客户的含义广义来讲,客户泛指直接或间接得益于产品的个人或组织。

软件工程期末复习

软件工程期末复习

软件工程期末复习一、填空题1. 软件是计算机系统中与硬件互相依存的另一部分,它是涉及(程序)、(数据)及其(相关文档)完整集合。

其中,(程序)是按事先设汁的功能和性能规定执行的指令序列,(数据)是使程序可以对的操纵信息的数据结构,(相关文档)是与程序开发、维护和使用有关的图文资料.2. 软件危机是指计算机软件的(开发)和(维护)过程中所碰到的一系列严重问题。

3. 软件工程是指导计算机软件(开发)和(维护)的一门工程学科,采用工程的概念、原理、技术和方法来开发和维护软件,把通过时间考验而证明对的的管理技术和当前可以得到的最佳技术方法结合起来,以经济地开发出高质量的软件并有效地(维护)它,这就是软件工程。

4. 常见的软件开发模型有(瀑布模型)、(快速原型模型)、(增量模型)和(螺旋模型)等;5. 软件工程学方法的三要素是:(方法)、(工具)和(过程)。

6. 瀑布模型是一个(文档)驱动模型。

7. 可行性研究一般可以从(经济)可行性、(技术)可行性、法律可行性和法律可行性等方面来研究。

8. 数据流图从数据传输和(数据加工)角度,以(图形)的方式描述数据流从输入到输出的传输变换过程。

9. 数据流图的四个基本符号分别表达(数据的源点或终点)、(数据的加工)、(数据存储)和数据流;10. 实体-联系图中,数据对象之间的关系有(一对一)、(一对多)和(多对多关系)。

11. 需求分析阶段应当建立三种模,即:(数据模型)、(功能模型)和(行为模型)。

12. 一般从(一致性)、(完整性)、(现实性)和(有效性)四个方面验证软件需求的对的性。

13. HIPO 图是由一组(层次图)图加上一张(IPO)图组成。

14. 模块独立性的两个度量标准为:(耦合)和(内聚)。

15. 一般说来,模块之间的耦合限度(低),则单个模块的内聚限度(高)。

16. 经验表白,设计好的软件结构,通常顶层模块的扇出(比较高),中层模块扇出(较少),底层模块(高)扇入17. 三种基本的程序控制结果是(顺序结果)、(选择(分支)结构)和(循环结构)。

《软件需求工程》期末考试试题2套含答案(大学期末复习资料).doc

《软件需求工程》期末考试试题2套含答案(大学期末复习资料).doc

考试科目名称 软件需求工程1、(本题满分10分) (1) 解释下列三个概念:业务需求、用户需求、系统需求;(2)说明为什么在需求开发当中要重视软件的质呈属性。

2、(本题满分10分)试分析按下列顺序安排的问题是什么面谈结构:(1) 你在这个职位多久了?(2) 你的主要责任是什么?(3) 你接受什么报告?⑷你是如何看待部门目标的?(5) 你是如何描述决策过程的?(6) 怎样才能最好地支持这个过程?(7) 做这些决策的频度如何?(8) 当你做决策时会咨询谁?(9) 你做过的对于部门机能有重要意义的决策是什么?(1)这里采用了什么结构?你是如何确定的?得分 得分(2)通过改变问题的顺序,重新安排面谈的结构(如果有些必要,可以省略一些问题)。

标明所用的结构。

3、(本题满分15分)在各种关于软件的调研当中,无一例外的发现“缺乏用户参与”是导致软件失败的最大原因,请列举至少3条会使得用户参与不足的原因?并说明相应的解决方法。

4、(本题满分15分)根据下列叙述性描述,为描述的内容绘制一个上下文DFD:校园书店“课本库存系统”的目的是向学生提供本地大学课程的课本。

大学的教学部门通过一个“课本主清单”向书店提交初始数据,包括课程、教师、课本和预计注册人数。

书店生成一个“购买订单”,“购买订单”被送到供应课本的出版公司。

图书订单随着一个“包装清单”到达书店,它被接收的部门检查和验证。

学生填写包含课程信息的“购书要求”,当他们付了书款Z后就得到一个“销售单据”。

5、(本题满分15分)一个CD销售商店需要开展网上销售业务,下而是它的一个典型销售场景:Normal Flow of Events:1.Customer submits a search request to the system, the request contains the category information ofCDs.2.The system provides the customer a list of recommended CDs.3.The customer chooses one of the CDs to find additional information according to its identifie匚4.The system provides the customer with basic information & CD Reviews5.The customer maintains the order, records the item chosen・6.The customer iterates over 3 through 5 until finished shoppin g・7.The customer checks out and leaves the website・请以上述场景的描述为基础,执行名词抽取、建立关联和识别属性三个过程,并最终为上述描述建立领域模型,要求详细记录你在执行三个过程时的具体步骤。

软件需求复习资料

软件需求复习资料

第1章1.需求开发可进一步细分为:获取、分析、规格说明和确认。

2.需求问题导致的主要后果是返工—重复做您认为早已做好的事情。

3.造成软件成本估算失败的最主要原因包括频繁变更需求、遗漏需求、未与用户充分沟通、需求的说明不精确,以及对需求的分析不透彻4.实现有效的需求工程过程。

减少开发后期以及整个维护过程中不必要的返工并可带来极大的回报。

第2章1.客户泛指直接或间接得益于产品的个人或组织。

2.很多组织把在需求文档上签字作为客户认可需求的标志,签字不仅仅是仪式,更重要的是建立需求协议的基线。

第3章1.需求分析包括对需求进行推敲和润色以保证所有的涉众人都能够理解需求,以及仔细检查找其中的错误、疏漏和其他缺陷。

2.分析包括将高层的需求分解成具体细节、创建开发原型,以及评估可行性和协商需求优先级。

3.需求验证可确保需求声明是正确的、具备了所需的质量属性,而且能够满足客户的需要。

第4章1.需求分析员是对项目涉众的需求进行收集、分析、记录和验证等职责的主要承担者。

第5章1.产品前景将所有涉众统一到一个方向上。

前景描述了产品用来干什么,它最终会是什么样子。

2.项目范围确定当前的项目要解决产品长远规划中哪一部分。

3.广度(breadth)指应用能完成哪些业务工作(即用例)。

而深度(depth)则说明将各项用例实现到何种程度。

4.前景与范围文档用于将业务需求收集整理到一个文档中,为后续的开发工作打好基础。

5.涉众是积极参与项目、受项目结果影响,或者能够影响项目结果的个人、团体或组织。

第6章1.开发人员开发的产品与客户期望获得的产品之间常常存在较大差距,即所谓的期望鸿沟。

第七章1.需求工程的核心任务是需求获取,即确定软件系统涉众的需要及限制条件的过程。

2.使用增量开发方法,把需求分解成低风险的更小的部分进行研究3.使用活动挂图(flipchart)来捕获以后再考虑的一些条目4.将客户的意见归类:业务需求用例或场景业务规则功能性需求质量属性外部接口需求数据定义解决思路5.用例是对用户目标或用户需要执行的业务工作的一般性描述;使用场景则是某个用例的一条特定路径。

软件工程 期末复习提纲完美版

软件工程 期末复习提纲完美版

《软件工程》复习提纲1 软件与软件工程1.1软件的基本概念(例如,软件的定义、文档、软件的特点等)简单地说,软件由程序和文档两部分组成,一是机器可以执行的程序及有关的数据,二是机器不能执行的文档,软件的两种普遍定义:①软件是与计算机系统操作有关的程序,规程、规则及任何与之相关的文档和数据。

②软件是程序以及开发,使用和维护程序所需要的文档,包括机器运行所需要的各种程序及有关资料。

程序:为了解决某一问题而按事先设计的功能和性能要求执行的指令系列,或者说,用程序设计语言描述的适合于计算机处理的语句序列。

数据:使程序能正常操纵信息的数据结构。

文档:描述程序、数据和系统开发以及使用的各种图文资料。

它具有永久性并能供人或机器阅读。

软件的基本特点:·①计算机软件产品是一种逻辑产品部件而不是物理产品部件。

·②软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化成信息的一种产品。

·③软件具有“复杂性”,其开发和运行常受到计算机系统的限制。

而且,软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。

·④软件不存在磨损,物理上不会老化,但存在软件退化问题。

·⑤软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。

1.2软件危机的概念软件危机是指在软件开发和维护过程中所遇到的一系列严重问题。

【由于软件的规模越来越大,复杂度不断增加,软件需求量增大。

而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。

致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。

】“软件危机”主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折;(2)软件生产率低,不能满足需要。

1.3软件工程学的概念(定义)、研究的内容(三要素)1993年IEEE定义:(1)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2)研究(1)中提到的途径。

软件工程-期末考试题(含答案)

软件工程-期末考试题(含答案)

软件工程-期末考试题(含答案)软件工程-期末考试题(含答案)1. 题目一:软件需求工程软件需求工程是软件开发的重要环节之一,主要包括需求获取、需求分析、需求规格、需求验证等阶段。

在软件开发的整个过程中,需求工程的目标是确保开发出的软件能够满足用户的需求,同时保证软件的质量和可靠性。

1.1 需求获取需求获取是软件需求工程的第一步,它涉及到对用户的需求进行调研和收集。

需求获取的方法可以包括面谈、问卷调查、观察等。

通过与用户的沟通和了解,开发团队可以获取到用户对软件的期望和需求,为后面的分析和规格阶段提供依据。

1.2 需求分析需求分析是对收集到的需求进行认真分析和理解的过程。

在这个阶段,开发团队将准确定义软件所需具备的功能、性能和约束。

通过对需求的分析,可以帮助开发团队更好地理解用户的需求,并将其转化为可执行的任务。

1.3 需求规格需求规格是将需求分析的结果进行详细描述和规范化的过程。

在这个阶段,开发团队需要将需求规格书写成可读、可理解的形式,以便于开发人员进行后续的开发工作。

需求规格书通常包括用例图、类图、时序图等各种工具和技术。

1.4 需求验证需求验证是对需求的正确性和完整性进行验证的过程。

在这个阶段,开发团队需要与用户进行确认,确保所开发的软件能够满足用户的期望和需求。

需求验证也可通过模拟测试、原型验证等方式进行。

2. 题目二:软件设计原则软件设计原则是开发人员编写高质量软件的指导原则,旨在提高软件的可维护性、可扩展性和可重用性。

下面介绍几个常用的软件设计原则。

2.1 单一职责原则单一职责原则(SRP)要求每个类或模块只负责一种功能或职责。

这样可以保持代码的简洁性和可读性,并使得类或模块更加易于维护和扩展。

2.2 开放封闭原则开放封闭原则(OCP)要求软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。

这样可以使得软件设计能够适应需求的变化,而不需要修改原有的代码。

2.3 里氏替换原则里氏替换原则(LSP)要求子类必须能够替换父类,并且不影响程序的正确性。

软件工程 期末考试复习总结知识点 必考题型

软件工程 期末考试复习总结知识点 必考题型

软件工程复习资料1.软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。

在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。

很难检验开发的正确性且软件开发的质量也较难评价。

因此控制软件开发过程相当困难。

此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。

这样维护的费用十分惊人,客观上使得软件较难维护。

(2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。

但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。

在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。

这是造成软件危机的主要原因。

(3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。

对用户的要求没有完整准确的认识就急于编写程序。

这是许多软件开发失败的另一主要原因。

事实上,许多用户在开始时并不能准确具体地叙述他们的需要。

软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。

(4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。

首先是文档缺乏一致性和完整性,从而失去管理的依据。

因为程序只是完整软件产品的一个组成部分。

一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。

其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。

(5) 在软件的开发和维护关系问题上存在错误的观念。

软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。

所以做好软件的定义工作是降低软件成本,提高软件质量的关键。

如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。

软件工程期末复习资料

软件工程期末复习资料

一、判断题1、成功的测试是没有发现错误的测试。

(×)2、软件是指程序设计语言编写的程序。

(×)3、程序设计语言中应绝对禁止使用GOTO语句。

(×)4、可行性研究的结果有可能将软件开发项目否定。

(√)5、类是关于对象性质的描述,由方法和数据组成。

(√)6、概要设计阶段完成的主要文档是概要设计说明书。

(√)7、软件维护的前提是不能失去原有软件的基本功能。

(√)8、用盒图和PAD图设计出来额算法必定是结构化的。

(√)9、面向对象技术的最大优点是减少软件的开发时间。

(×)10、白盒测试无需考虑模块内部的执行过程和程序结构。

(×)11、如果通过软件测试没有发现错误,则说明软件是正确的。

(×)12、螺旋模型是在瀑布模型和增量模型的基础上增加风险分析活动。

(√)13、可行性研究的根本的目的不是解决问题,而是确定问题是否值得去解。

(√)14、在面向对象方法学中,“事件”是瞬时完成的,而“状态”是有持续性的(√)15、模块化、信息隐蔽等软件设计原则有助于得到高内聚低耦合度的软件产品√二、选择题1、软件工程的概念是1968年提出的2、对象的操作是对象的特征3、各种不同的软件维护中,以预防性维护所占的维护量最小4、准确的解决“软件必须做什么”是需求分析阶段的任务5、数据字典中,一般不包括源点和终点6、软件可行性研究实质上是要进行一次简化、压缩的需求分析、设计过程。

7、为高质量地开发软件项目,在软件结构设计时,必须遵循信息隐蔽原则。

8、研究开发所需要的成本和资源是属于可行性研究中的经济可行性研究的一方面。

9、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试程序内部逻辑。

10、在确定属性时,所有修饰性名词词组和形容词是候选的属性。

11、下列的开发一个简单的问题解决方案不是分析建模的目的。

12、确认测试主要涉及的文档是需求规格说明书。

13、软件需求规格说明书的内容不应包括对算法的详细过程的描述。

软件工程期末复习(超详细!!!)

软件工程期末复习(超详细!!!)

软件工程期末复习(超详细!!!)一:软件工程概述软件工程学的存在价值:促进软件项目成功。

软件的概念:软件(software):软件是计算机系统中与硬件相互依存的另一部分。

它包括程序、数据及其相关文档的完整集合。

(1)能够完成预定功能和性能的可执行指令(program)(2)使得程序能够适当地操作信息的数据结构(data)(3)描述程序的操作和使用的文档(document)软件危机:软件危机定义:软件在开发和维护过程中遇到的一系列严重问题。

软件危机包含两层含义:如何开发软件。

如何维护数量不断膨胀的已有软件。

软件工程(Software Engineering):是研究和应用功能如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。

软件生存周期:是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。

一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。

计划阶段确定待开发系统的总体目标和范围。

研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。

分析阶段分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。

设计阶段(总体设计和详细设计)设计阶段的目标是决定软件怎么做。

软件设计主要集中于软件体系结构、数据结构、用户界面和算法等方面。

实现阶段(编码)实现阶段是将所设计的各个模块编写成计算机可接受的程序代码。

测试阶段设计测试用例,对软件进行测试,发现错误,进行改正。

运行和维护阶段应当在软件的设计和实现阶段充分考虑软件的可维护性。

维护阶段需要测试是否正确实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。

维护常常是软件生命周期中最具挑战性的一个阶段,其费用是相当昂贵的。

软件工程三要素:工具、方法、开发过程瀑布模型:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。

软件工程期末复习要点归纳总结

软件工程期末复习要点归纳总结

软件工程期末复习要点归纳总结软件工程是指在软件开发的全过程中,应用工程的原理、方法和经验对软件进行开发、运行和维护的过程。

在软件工程这个学科中,包括了软件需求、软件设计、软件构建、软件测试、软件维护等多个阶段和技术。

下面是软件工程期末复习的要点归纳总结:1.软件开发过程模型-瀑布模型:各个阶段按顺序进行,每个阶段完成后不可回溯。

-增量模型:将软件划分为多个增量,每个增量独立进行开发。

-螺旋模型:将软件开发过程分为多个循环,每个循环都包括需求分析、设计、开发和测试。

-迭代模型:将软件开发过程分为多个迭代,每个迭代包括需求分析、设计、开发和测试。

2.软件需求工程-需求获取:通过需求采集、用户访谈、问卷调查等方式获取需求。

-需求分析:对需求进行整理、分类、抽象和规范化,得出系统需求。

-需求规格说明:将需求规格化为需求文档,包括用例、用例图、领域模型等。

-需求验证:通过评审、原型验证等方式验证需求的正确性和完整性。

3.软件设计-结构化设计:通过模块化、自顶向下、逐步求精的方式进行软件设计。

-面向对象设计:通过类、继承、多态等面向对象的概念进行软件设计。

-架构设计:设计软件的整体框架和组件之间的关系。

-接口设计:设计软件的各个组件之间的接口。

4.软件构建-编码:根据设计文档进行编码,可以使用编程语言、集成开发环境等工具。

-调试:通过调试工具,对程序进行调试,找出存在的问题并进行修复。

-集成:将各个模块集成到一起,进行整体测试,确保功能的正确性。

-部署:将软件部署到目标环境中,确保软件能够正常运行。

5.软件测试-单元测试:对软件的最小单元进行测试,如函数、方法等。

-集成测试:对软件的各个模块进行整合测试,确保模块之间的协调性。

-系统测试:对整个系统进行测试,确保系统满足用户需求。

-验收测试:由用户对软件进行测试,验证软件是否满足用户需求。

6.软件维护-改正性维护:修复软件中的错误。

-适应性维护:根据用户需求,对软件进行功能扩展。

软件工程期末复习资料2(1)

软件工程期末复习资料2(1)

软件工程复习资料选择题,请从四个可选项中选择正确答案。

1.软件工程学科出现的主要原因是(C。

A. 计算机的发展B. 其他工程科学的影响C. 软件危机的出现D. 程序设计方法学的影响2、(A)是职业软件工程师的必要条件。

A.自律、善于沟通、具有一定的软件技能B.编程速度快C.熟悉众多的软件环境D.语言天赋3.在E-R 模型中,包含以下基本成分(C)。

A.数据、对象、实体B.控制、联系、对象C.实体、属性、联系D.实体、数据、联系4.软件需求分析产生一个重要文档是(.B )。

A.软件维护说明书B.需求规格说明书C.可行性报告D.初步用户手册5.内聚程度较低的是(D )。

A.通信内聚B.过程内聚C.顺序内聚D.时间内聚6.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是(D )A.把软件划分成模块B确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码7、程序流程图与数据流程图的关系(A)。

A.不确定B.数据流程图可以转换成程序流程图C.数据调用关系D.程序流程图可以转换成数据流程图8.对象实现了数据和操作的结合,使数据和操作(D)于对象的统一体中。

A.结合B.隐藏C.封装D.抽象9.类有3种类型,即(B )。

A.边界类、实体类、控制类B.实体类、控制类、界面类C.控制类、实体类、虚类D.界面类、控制类、公共类10.(D )是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。

A.消息连接B.参数传递C.方法重写D.继承11、软件工程的研究内容具有层次化结构,最底层是质量保证层,中间层是(C),最上层是工具层。

A.过程层B.方法层C.过程层和方法层D.系统层12、可行性研究的四大要素是(D)。

A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平C.经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性13、针对需求不确定的软件开发,比较好的模型是(A)。

软件工程 期末复习备考资料

软件工程 期末复习备考资料

1. 软件开发的各阶段以及各自的任务软件开发一般分为五个阶段:1.问题的定义及规划此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。

2.需求分析在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。

需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。

“唯一不变的是变化本身”,同样软件需求也是在软件开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。

3.软件设计此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。

软件设计一般分为总体设计和详细设计。

还的软件设计将为软件程序编写打下良好的基础。

4.程序编码此阶段是将软件设计的结果转化为计算机可运行的程序代码。

在程序编码中必定要制定统一、符合标准的编写规范。

以保证程序的可读性、易维护性。

提高程序的运行效率。

5.软件测试在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。

整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。

测试方法主要有白盒测试和黑盒测试。

需要大家掌握软件开发模型,瀑布、原型、演化、增量 等2. 可行性研究部分需要大家掌握系统流程图、数据流图(DFD)的画法.模型不用画,会描述就可以了。

如果能画出更好。

可行性研究从哪几个方面进行的?包括经济可行性研究,技术可行性研究,法律可行性研究和开发方案这4个部分考生 原始分 标准分 计算 标准分 计算 录取线分 招生计划 招生数 标准分 考生分数文件 标准分 录取线文件录取分数 解:3.第三章需求分析需求分析包括功能和性能(参PPT)功能:系统做什么?系统何时做什么?系统何时及如何修改或升级?性能:存储容量限制执行速度、响应时间吞吐量需求建模部分:DFD导出软件结构图。

4.第四章软件设计模块独立性模块完成独立的功能。

软件需求期末考试资料整理

软件需求期末考试资料整理
第二讲
要求:弄清楚软件开发过程(书上给了供大家参考的图)
如果让你接收一个软件项目,如何规划开发过程?
1、Understandgood practicesfor requirements engineering
最佳方法是一个有争议的说法:谁能决定什么是“最佳”,他有什么依据?一种决定方法是召集一群行业专家或研究人员来分析来自不同组织的项目。这些专家在其中寻找一些方法,他们的有效性能是和成功的项目联系在一起的,而失败的项目则往往没有很好地时间这些方法,或者根本就没有实践。通过这些这些手段,专家们就那些一直产生良好结果的活动达成一致。这些活动就被称为最佳方法。对于专业软件人员来说,这些活动代表了十分高效的方法,能够提高特定类型或特定条件下项目的成功几率。-P28
2)改善用户与开发人员的信息交流和思想沟通,给用户修改的机会。
3)减少或消灭下游返工的可能,改进了瀑布模型的弊病。
4)原型系统可作为培训环境,有利于用户培训和开发同步。
5)开发成本降低,周期缩短。
但是创建原型也同时带来了风险:
1)最大的风险是涉众看到一个正在运行的原型,从而得出产品几乎已经完成的结论。
2、当系统设计人员在做系统设计时,测试人员可以了解系统是如何实现的,基于什么样的平台,这样可以设计系统的测试方案和测试计划,并事先准备系统的测试环境,包括硬件和第三方软件的采购。因为这些准备工作,实际上是要花去很多时间。
第三、四讲
视图和范围文档
第五、六讲
1.什么是原型?为什么用原型?如何看待原型?【P162~P171】
(1)软件原型是所提议的新产品的部分实现或可能的实现。它是软件系统的最初版本,以最少的费用,最短的时间开发出的、以反映最后软件的主要特征的系统。是一个可实地运行的模型,有正式产品的主要特用开发(RAD,Rap Application Development)模型基础上演变而来,由于将整个开发过程构造成一个V字形而得名。V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

动切换或者可否由用户采取某些措施来激发这样转变?还有,在文档中显示转变的围是什
么?是所选的文本、整个文档或其它容?这个需求也存在一个不确定性问题。“非打印”字
word 专业资料
.
符是否指隐藏文本、属性标记或者其它的控制字符?由于存在这些问题,该需不可验证的。 用如下的语句描述这个需求可能会更好一些:
揭示和不断完善用户需求,直到满足用户的全部需求为止。其基本过程如下:
收集需求 快速设计 建立原型 评价并细化需求 设计与实现 测试 维护
面向对象开发模型基本思想:
应用对象、类、继承、封装、消息、对象或类之间的关系等面向对象的概念对问题进行分析
和求解的软件开发技术,或者说,是以对象(类)为数据中心、对象之间的动态行为模式作
相关的活动及其过程的可管理性,降低需求开发和管理的难度和成本。
其它定义:
Alan.Davis: 直到(但不包括)把软件分解为实际架构组建之前的所有活动,即软件设计
之前的一切活动。该定义虽然没有详细说明需求工程是什么,但其给出了需求工程的围。
Lan K. Bray:对问题域统的特性,并
“用户在编辑文档时,通过激活特定的触发机制,可以在显示和隐藏所有 H T M L 标 记之间进行切换”。现在,指代关系就清楚了,非打印字符指的是 H T M L 标记。修改过的 需求指明了是用户触发了显示状态的转换,但是它并没有对设计造成限制,因为它并没有精 确定义所使用的机制。当设计人员选择好一种触发机制(例如热键、菜单命令或语音输入) 时,你就可以编写详细的测试用例来验证这种转换操作是否正确。 (3)编译系统应该能生出出错报告,这样就可使初学者能迅速的排错。 应说明编译系统在什么情况下出什么出错报告,改为: 编译系统应该能标识出错误,并在错误所在的位置显示出出错报告,这样就可使初学者迅速 的排错。 (4)软件系统应具有良好的反应时间和数据精度,且能由菜单方式驱动。 “良好的”应使用量化的语言叙述,改为: 软件系统的反应时间应小于 1 秒,数据精度为 10^-6。 (5)“分析程序应该能生成 H T M L 标记出错的报告,这样就可以使 H T M L 的初学者使 用它来迅速排错。” “迅速”这个词具有模糊性。缺乏对出错报告容的定义表明该需不完整的。我不知道你是如 何验证这个需求的。找一些 H T M L 的初学者,看他们利用这个报告是否可以迅速排错? 还有一点不清楚的是: H T M L 初学者使用的是分析程序还是出错报告。并且何时生成这 样的报告?让我们使用另一种方式表述这个需求: a. 在 H T M L 分析程序完全分析完一个文件后,该分析程序必须生成一个出错报告,这个 报告中包含了在分析文件过程中所发现错误的 H T M L 所在的行号以及文本容,还包含了
约束与限制:指软件开发人员在设计和实现软件系统时的限制,如:开发语言,使用的数据
库等。
word 专业资料
.
☆ 试述快速原型开发模型和面向对象开发模型的基本思想,然后说明快速原型开发模型中
抛弃型模型和进化型模型的作用。
p9
快速原型模型基本思想:快速建立一个实现了若干功能的(不要求完全)可运行模型来启发、
IEEE 软件工程标准:
(1)用户解决问题或达到目标所需的条件或能力;
(2)系统或系统部件要满足合同、标准、规或其它正式规定文档所需具有的条件或能力。
通俗定义 :软件需指软件系统必须满足的所有功能、性质和限制。
软件需求的类型:
目标需求:反映组织机构或客户对系统和产品提出的高层次的目标要求,其限定了项目的围
和项目应达到的目标。
业务需求:主要描述软件系统必须完成的任务、实际业务或工作流程等。软件开发人员通常
可从业务需求进一步细化出具体的功能需求和非功能需求。
功能需求:指开发人员必须实现的软件功能或软件系统应具有的外部行为。
性能需求:指实现的软件系统功能应达到的技术指标,如:计算效率和精度,可靠性,可维
护性和可扩展性等。
为运行机制的一种问题求解方法。其基本过程如下:
面向对象分析
面向对象设计
面向对象实现和测试
系统维护
抛弃型模型:指在原型达到预期目的后将其抛弃,而且在构建该原型时,可以忽略具体的软 件构造技术,亦即应以最小的代价构造抛弃型原型。 进化型模型:在需求被清楚定义的情况下,以渐增式方式构建原型,并使原型最终能成为软 件产品的一部分。
(1)系统必须在固定的时间间隔提供状态信息,并且每次时间间隔不得小于 60 秒。
含糊。需求不完整,导致需求不可验证。改进如下:
后台任务管理器(BTM)应该在用户界面的指定区域显示状态消息。
a.在后台任务进程启动之后,消息必须每隔 60(10)秒更新一次,并且保持连续的可见性。
b.如果正在正常处理后台任务进程,那么后台任务管理器(BTM)必须显示后台任务进程已完
需求定义阶段:根据用户需求编写出需求规格说明。
需求的形式化描述阶段:用严格的数学知识和符号来构造系统的需求模型。
需求验证阶段:检验软件需求规格说明。
需求管理阶段:开发人员在与提出更改的请求者协商的基础上,评估需求变更带来的潜在影
响及可能的成本及费用,然后实施更改,一级有效的管理需求规格说明文档和跟踪更改需求
成的百分比。
c.当完成后台任务时,后台任务管理器(BTM)必须显示一个“已完成”的消息。
d.如果后台任务中止执行,那么后台任务管理器(BTM)必须显示一个出错信息。
(2)“产品必须在显示和隐藏非打印字符之间进行瞬间切换”。
在瞬间这一时间概念上,计算机不能完成任何工作,因此,这个需不可行的。该需求也
是不完整的,因为它没有说清状态切换的原因。在特定的条件下,软件产品是否可以进行自
用文档给予说明。这个定义明确指出了需求工程的任务就是获取、分析和表达软件的需求。
需求工程 = 需求的开发活动 + 需求的管理活动
2 各阶段主要任务
需求获取阶段:获取用户的需求信息。
需求分析阶段:分析和综合已经收集到的需求信息。
需求建模阶段:根据待开发软件系统的需求利用某种建模方法建立该系统的逻辑模型。
对。
功能性需求
(4)通过对用户进行不到一个小时的培训后,用户能输入和打印某些数据,且输入/出的出
错率低于 1/20。
非功能
(5)所有报销单据必须经过财务部门某负责人审核后才能交由系统处理。
非功能
(6)系统必须用面向对象的方法和技术实现。
非功能
☆ 下列需否含糊,如果含糊的话,请在说明理由后给予修改:
p84
word 专业资料
.
的状态。
☆ 什么是软件需求?软件需求有哪些类型,并分别给出它们的定义。
p2
软件需求的定义:
A. Davis:软件需从软件外部能发现的,软件所具有的,满足于用户的特点、功能及属性等
的集合。
I. Sommerville:需问题信息和系统行为、特性、设计和实现约束的描述的集合。
M. Jackson 等:需客户希望在问题域产生的效果 。
☆ 请指出下列述属于哪种类型的软件需求或不属于软件需求。
p26
(1)只有电梯停在某一楼层时,电梯才能改变方向。 非功能
(2)系统必须用三个主要模块来实现,即检测、记录和统计分析模块,每个模块各自实现
word 专业资料
.
一个主要功能。
功能性需求
(3)当用户输入他们的口令后,系统便自动从口令文件中检索他们的加密口令,并进行核
.
☆ 什么是软件需求工程?请说明软件需求工程中各阶段的主要任务。
p5
1 定义
一般定义:指应用工程化的方法、技术和规格来开发和管理软件的需求。
需求工程的目标: 获取高质量的软件需求。
与软件工程中传统的需求分析概念相比,需求工程突出了工程化的原则,强调以系统化、条
理化、可重复化的方法和技术进行与软件需求相关的活动,从而有利于提高所有与软件需求
相关文档
最新文档