软件需求分析-复习题 (2)
软件工程复习题
软件⼯程复习题需求分析习题1.需求分析的最终结果是( D )A.项⽬开发计划B.需求规格说明书C.设计说明书D.可⾏性分析报告2.数据流图(DFD)是(D)⽅法中⽤于表⽰系统的逻辑模型的⼀种图形⼯具。
A.SA结构化分析⽅法B.S D结构化设计⽅法C.S P 结构化程序设计⽅法D.SC3.需求规格说明书的作⽤不包括(C)A.软件验收的依据B.⽤户与开发⼈员对软件要做什么的共同理解C.软件可⾏性研究的依据D.软件设计的依据4.数据词典是⽤来定义(D)中的各个成分的具体含义的。
A.流程图B.功能结构图C.结构图D.数据流图5.结构化分析⽅法(SA)是⼀种⾯向(B)的分析⽅法。
A.数据结构B.数据流C.结构化数据系统D.数据流图6.在数据词典中,⼀下那⼀项表⽰允许重复0⾄任意次(C)。
A.{}B.0{}C.0{}nD.{}n7.⼀下数据流图符号中哪⼀个表⽰加⼯(B)A.□8.原型化⽅法是⼀种动态定义需求的⽅法,(D)不是原型化⽅法具有的特征。
A.简化项⽬管理B.尽快建⽴初步需求C.加强⽤户参与和决策D.提供严格定义的⽂档9.结构化分析的核⼼是(D)A.⾃顶⽽下地分解B.⽤DFD建模C.⽤DD描述数据需求D.⾃底⽽上地抽象10.需求分析的任务是(A)A.正确说明让软件“做什么”B.⽤DFD建模C.⽤DD建⽴数学模型D.给出需求规格说明书11.对于分层的DFD,⽗图与⼦图的平衡是指(B)A.⽗图于⼦图的输⼊输出数据流必须相同B.⼦图必须继承⽗图的输⼊与输出流C.⽗图与⼦图相应的输⼊输出数据流名字保持⼀致D.⼦图可以有⾃⼰的输⼊输出数据流12.DFD的每个加⼯都必须有(A)A.⼀个输⼊和输出流B.⼀个输⼊数据流C.⼀个输出数据流D.⼀个输⼊或输出流13.需求分析是分析员经了解⽤户的要求,认真细致的调研、分析,最终建⽴⽬标系统的逻辑模型并写出(B)的过程。
A.模块说明书B.软件规格说明书C.项⽬开发说明书D.合同⽂档14.结构化分析⽅法是以数据流图、(D)和加⼯说明的描述⼯具,即⽤直观的图和简洁的语⾔来描述软件系统模型。
青岛科技大学成人高考2021年上学期《软件工程》期末复习题
《软件工程》导学材料一.单选题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.面向对象方法是将现实世界的事物以对象的方式()到计算机世界的方法。
A.对应B.映射C.反映D.反射9.盒图也称为(),这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
A.流程图B.框图C.判定表D.N-S 图10.在白盒测试技术测试用例的设计中,()是最强的覆盖标准。
A.语句覆盖B.路径覆盖C.条件组合覆盖D.判定覆盖11.()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A.多态性B.继承C.封装D.消息12.面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模语言。
A.Booch 方法B.Coad 方法C.UML 语言D.OMT 方法13.软件测试是为了()而执行程序的过程。
A.纠正错误B.发现错误C.避免错误D.证明正确14.支持面向对象技术的软件生存周期模型是()。
A.喷泉模型B.螺旋模型C.增量模型D.瀑布模型15.在白盒测试技术测试用例的设计中,()是最弱的覆盖标准。
软件需求分析与设计考核试卷
D.数据型
12.在软件设计中,以下哪个原则表示模块之间的关系应该简单明了?()
A.单一职责原则
B.开放封闭原则
C.迪米特法则
D.组合原则
13.以下哪个工具主要用于描述软件的详细设计?()
A.数据流图(DFD)
B.数据字典(DD)
C.类图
D.顺序图
14.在软件设计过程中,以下哪个阶段主要用于确定模块的划分和接口定义?()
软件需求分析与设计考核试卷
考生姓名:答题日期:得分:判卷人:
一、单项选择题(本题共20小题,每小题1分,共20分,在每小题给出的四个选项中,只有一项是符合题目要求的)
1.软件需求分析的主要目的是?()
A.确定软件的功能需求
B.分析和评估软件的可行性
C.描述软件的详细设计
D.编写软件的用户手册
2.以下哪个不是软件需求分析的任务?()
10.风险评估
四、判断题
1. √
2. ×
3. √
4. ×
5. ×
6. √
7. √
8. ×
9. ×
10. ×
五、主观题(参考)
1.软件需求分析的主要任务是确定用户需求,分析系统功能,定义系统约束等。它的重要性在于为软件设计和开发提供明确的方向,确保软件满足用户需求,避免后期重大修改。
2.面向对象设计原则包括单一职责、开闭、里氏替换、接口隔离和依赖倒置。它们在软件设计中指导如何创建可维护、可扩展和可重用的模块。
A.泛化关系
B.关联关系
C.聚合关系
D.组合关系
9.以下哪个方法主要用于评估软件设计的质量?()
A.代码审查
B.单元测试
C.集成测试
D.设计评审
软件工程复习题及答案(完整)
一、选择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)系统。
A 需求不确定的B 需求确定的C 管理信息D 决策支持18、(A)意味着一个操作在不同的类中可以有不同的实现方式.A 多态性B 多继承C 类的可复用D 信息隐蔽19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。
软件工程-需求分析-复习答案
)1. 以下哪一项不是软件危机的表现A.开辟的软件可维护性差 B.软件极易被盗版C.经费预算时常被突破 D.开辟的软件不能满足用户需求2.下面不属于软件工程的三个要素是) 。
A 过程B 环境C 方法D 工具)。
3. 需求分析阶段的任务是确定A 软件开辟方法B 软件开辟工具C 软件开辟费用D 软件开辟功能4. 下列不属于需求分析工具的是)。
A。
数据流图 B.用例图 C。
状态图D。
程序流程图5.关于软件测试的目的,下面观点错误的是) ArrayA.为了发现错误而执行程序的过程B.一个好的测试用例能够发现至今尚未发现的错误C。
证明程序是正确、没有错误的D。
一个成功的测试用例是发现了至今尚未发现的错误的测试6。
软件详细设计阶段的任务是)。
A.算法与数据结构设计B.功能设计C.调用关系设计 D。
输入/输出设计)7. 下列属于静态测试方法的是A.人工检测 B.路径覆盖C.黑盒测试 D.白盒测试)8.汽车是一种交通工具,汽车类和交通工具类之间的关系是ArrayA.组合会萃关系 B。
共享会萃关系C.普通-具体关系 D。
整体-部份关系) .9.结构化程序设计的风格,主要强调的是ArrayA.程序的执行效率B.模块的内聚C.程序的可理解性 D.模块的耦合)。
10.在整个软件维护阶段所花费的全部工作中,所占比例最大的是ArrayA.校正性维护 B.适应性维护C.预防性维护 D.完善性维护11 。
“ 软件工程的概念是为解决软件危机而提出的”这句话的意思是)A。
强调软件工程成功解决了软件危机的问题B。
说明软件危机的存在总是使软件开辟不像传统工程项目那样容易管理C.说明软件工程这门学科的形成是软件发展的需要D。
说明软件工程的概念 ,即:工程的原则、思想、方法可解决当时软件开辟和维护存在的问题12。
在软件工程的需求分析阶段,不属于问题识别内容的是)A。
输入/输出需求 B。
性能需求C.环境需求D.功能需求13. 软件需求规格说明书的作用不包括)A.软件验收的依据B.软件设计的依据C.软件可行性研究的依据D.用户与开辟人员对软件要做什么的共同理解14.一个成功的测试可以)A.表明程序没有错误B.发现了尚未发现的错误C。
需求分析与功能建模方法(二)
需求分析与功能建模方法(二)(总分:100.00,做题时间:90分钟)一、选择题(总题数:35,分数:70.00)1.关于数据库应用系统的需求分析工作,下列说法正确的是______。
A.通过需求分析过程,需要确定出整个应用系统的目标、任务和系统的范围说明B.在需求分析阶段,系统需求分析员要与用户充分沟通,并做出各类用户视图C.数据需求分析的主要工作是要辨识出数据处理中的数据处理流程D.数据操作响应时间、系统吞吐量、最大并发用户数都是性能需求分析的重要指标(分数:2.00)A.B.C.D. √解析:[解析] 本题考查的是需求分析的基本概念和分类。
确定出整个应用系统的目标、任务和系统的范围说明是项目规划阶段的任务,不属于需求分析的任务,所以A选项是错误的。
在B选项中,需求分析阶段的成果主要是文字说明,而不是用户视图。
“辨识出数据处理中的数据处理流程”是数据处理需求分析的工作,数据需求分析的主要工作是辨识出数据处理中需要处理的数据,包括数据项和数据结构,因此C选项也是错误的。
性能需求分析的重要指标包括数据操作响应时间、系统吞吐量、最大并发用户数等。
2.需求分析阶段的任务是确定______。
A.软件开发方法 B.软件开发工具C.软件开发费用 D.软件系统功能(分数:2.00)A.B.C.D. √解析:[解析] 本题考查需求分析阶段的任务。
需求分析阶段的任务是通过详细调查,获取原有手工系统的工作过程和业务处理,明确用户的各种需求,确定新系统的功能。
因此,确定软件系统功能是需求分析阶段的任务。
3.对于大规模的数据收集,可以采用以下哪种需求获取方式______。
A.面谈调查 B.实地观察 C.文档采样 D.文件查阅(分数:2.00)A.B.C. √D.解析:[解析] 文档采样是指收集客户单位保存的各类文档。
对于大规模的数据文档,需求分析员可以采用文档采样的办法来解决。
4.关于需求获取的方法,以下说法错误的是______。
软件工程复习资料整理
《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
2、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。
0802A.判定表和判定树C.流程图3、以下不属于逻辑覆盖的是(D)。
1402A.语句覆盖C.条件覆盖B.盒图D 关系图B.判定覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为( B)。
1501A.纠错性维护B.适应性维护C.改善性维护 D 预防性维护二、填空题(每空2分,共18分)1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。
01012. 高级语言:独立于机器,面向过程或面向(对象)01013. 软件项目管理的范围主要集中于 3 个P 上,即:People 人员、Problem 问题和(过程)。
02014. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。
15045. 在公式V(G) = E – N + 2 中: E 为程序图G 中边的总数;N 为程序图中结点的总数。
V(G)又称为图 G 的环形(复杂度)0204。
6. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。
03037. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。
12048. 文档是一种数据媒体和其上所记录的(数据)。
0101三、判断题(每小题2分,共24分,错误打X、正确打√)1. 用户对软件需求的描述不准确,往往是产生软件危机的原因之一。
(√)01022. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)02063. 目前的绝大多数软件都不适合于快速原型技术。
河北工业大学软件工程期末复习总
页眉软件工程试题A卷:一、填空题(每空2分,20空,共40分)1.软件定义时期包括两个阶段,它们是“1】可行性研究)和(【2】需求分析)两个阶段。
2.数据流图有“3】4)种基本符号,数据流图中,箭头表示“4】数据流)。
3.数据流图有变换型结构和“5】事务)型结构两种类型。
4. 4个人之间的通信量是“6】6)5.评定模块的独立性的标准是耦合和内聚。
“7】耦合)是对软件内部块间联系的度量,按照由弱到强的顺序,可以把它分为“8】7)类。
其中,最弱的是“9】非直接耦合),最强的是“10】内容耦合)6.程序结构的复杂性度量值V(G)取决于程序控制流的复杂程度。
顺序结构的V(G)值为“11】1),选择结构的为“12】2)。
7.在模块结构图中,“13】扇入)是指直接调用该模块的模块数8.模块的独立性可用耦合和内聚的高低来评定,设计较好的模块要求“14】内聚)高、耦合“15】低)。
9.语句覆盖测试技术是“16】白盒测试)方法的一种10.等价类划分技术是属于“17】黑盒测试)方法的11.按维护的起因,可以将维护活动分为4类:“18】改正性维护)、“19】适应性维护)、完善性维护和预防性维护。
完善性维护占总维护量的“20】50%以上)。
二、名词解释(每题4分,5题,共20分)1.软件的可靠性:是指在给定的时间间隔内,程序成功运行的概率。
2.内聚:标志一个模块内各个元素被此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
3.模块化:把一个程序划分成若干个模块,每个模块完成一个子功能,将这些模块组装成一个整体,即可完成该程序指定的功能。
4.改正(纠错)性维护:为改正软件系统中潜藏的错误而进行的活动5.对象:对象是客观世界事物和个体的抽象表示。
是它的属性和相关操作的统一封装体。
三、简述题(每题10分,4题,共40分)1.软件是什么?其特点有那些?答:软件(2分)是计算机程序及其说明程序的各种文档,软件=程序+文档(+数据)特点(8分,每个2分,答出4个即可)(1)软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。
软件工程 简答题复习题(带答案)
软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。
它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。
2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。
通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。
4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。
它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。
5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。
6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。
7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。
它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。
8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。
单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。
9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。
维护包括错误修复、性能优化、功能扩展等。
软件需求分析师面试题及答案
软件需求分析师面试题及答案(1) 需求分析工程师在整个项目管理过程中,扮演怎样的角色?如何与团队的其他成员开展工作?需求分析工程师在项目管理的过程中,扮演着项目成败关键人物或是项目先行者的角色。
在与团队的其他成员(指该项目需求组其他成员),应符合“总-分-总”的交流方式来开展整个项目组的需求调研工作。
①组长与客户负责人进行有效沟通,了解软件使用机构、参与调研的客户部门人员、客户的层次关系(主管/助理)等。
②组长将客户的各项情况通过会议的方式,传达到所有需求分析师。
③组长依据客户基本情况,对需求分析师进行两人分组(调研/协助),并分配至不同的业务和人员。
④调研后,小组成员与相应成员进行沟通,并形成该部分的需求,并及时与客户进行反馈。
⑤小组之间进行沟通,协调需求中的各项名词,并制定整份需求文档。
⑥再次将整本需求反馈给用户,进行协调确认不明确需求。
⑦确定需求后,暂时留守一位需求分析师跟进需求分析过程,快速做出需求变更反馈。
(2) 项目整个计划已经落后,怎样在短时间内追进项目需求进度?项目整个计划已经落后,着急和加班加点并不是很好的解决方式。
虽然加班可以通过工作的时间来增加工作的效果,但是并没有提高效益。
本人觉得以下五条或许能够更好的解决这个问题:①自我暗示:相信自己能够在短时间内完成,其次还得注意到这份压力。
②积极学习:积极去学习业务的专业知识,尽量缩短客户的交流时间。
③有效沟通:要和客户进行有效的沟通,从客户那确定自己学习是否理解正确,减轻客户的交流信息,同时能够提高交流的效率。
④适当加班:项目已经落后,加班是在所难免,但是毕竟要控制这个量。
人不是机器,只有休息好才能隔日有饱满的精神工作。
⑤放手拼搏:到这个关头,除了自我暗示信心外,更重要的是脚踏实地的实践。
(3) 需求分析工作包括哪些?需求分析过程中,包括的工作较多,主要是通过与客户进行直接交流和自己的学习来进行获知。
其主要包括:角色分析、业务流程分析、核心功能分析、关键需求点分析、用例分析、数据流图分析、核心功能点的时序分析、需求文档编写、调研记录和需求变更记录等。
软件需求分析-复习题264743
简答题1.需求分析的目的是什么?难点在哪里?需求分析为什么特别重要?需求分析的目的:需求分析主要用于获取用户的具体需求,通过对实际需求的获取、分析、文档化和验证等需求分析过程,为进一步的设计和实现提供依据:(1) 需求分类。
将软件功能、性能、可靠性等相关需求进行分类、逐一细化。
(2) 面向用户获取并分析需求。
软件研发其他阶段都是面向技术的,只有需求分析阶段是面向用户的,深入调研获取并分析软件的功能、性能、可靠性等,也可从系统和用户需求中推导出软件具体需求,并检查需求定义准确性,是否存在二义性。
(3) 检查和解决不同需求间的矛盾。
尽量达到均衡和优化。
(4) 确定软件的边界,以及软件与环境的相互作用方式等。
如应用及运行边界和环境。
(5) 对需求文档化并进行最后验证与确认。
难点:主要体现在以下5个方面:(1)问题确定难。
主要原因一是应用领域的复杂性及业务变化,难以具体确定;二是用户需求所涉及的多因素引起的,如运行环境和系统功能、性能、可靠性和接口等。
(2)需求动态性。
软件的需求在整个软件生存周期,常会随着时间和业务而有所变化。
有的用户需求经常变化,一些企业可能正处在体制改革与企业重组的变动期和成长期,其企业需求不成熟、不稳定和不规范,致使需求具有动态性。
(3)交流共识难。
需求分析涉及的人事物及相关因素多,与用户、业务专家、需求工程师和项目管理员等进行交流时,不同的背景知识、角色和角度等,使交流共识较难。
(4)完备一致难。
由于不同人员对系统的要求认识不尽相同,所以对问题的表述不够准确,各方面的需求还可能存在着矛盾。
难以消除矛盾,形成完备和一致的定义。
(5)深入完善难。
需求理解对不全面准确的分析,客户环境和业务流程的改变,市场趋势的变化等,也会随着分析、设计和实现而不断深入完善,可能在最后重新修订软件需求。
分析人员应认识到需求变化的必然性,并采取措施减少需求变更对软件的影响。
对必要的变更需求要经过认真评审、跟踪和比较分析后才能实施。
软件需求分析复习资料
计算机系统本身是无用的
������ ������ ������ ������ ������ ������
软件开创了新的可能性
目录
首页
上页
下页
末页
软件需求包括三个不同的层次—业务需求、用户需求和 功能需求(非功能需求)
业务需求( business requirement)反映了 组织机构或客户对系统、产品高层次的目标 要求
原型法
适合于开发方清楚 对于开发方要求较 在以往类似项目应 项目需求但用户方 高 用系统的基础上进 不清楚项目需求的 行少量修改得出一 情况 可运行系统
节省开销 无法满足个性化软 重用建好的领域模 件要求 型,获得新系统需 13 复旦大学计算机科学与工程系 软件工程课程 求
目录 首页 上页 下页 末页
复旦大学计算机科学与工程系 软件工程课程 31
目录
首页
上页
下页
末页
类图
当你考虑如何将问题域对象映射到系统对象, 并进一步细化每个类的属性和操作时,面向对 象技术可以方便需求开发到设计阶段的转换。 类图(class diagram)是用图形方式叙述面向对 象分析所确定的类以及它们之间的关系。 用统一建模语言(UML)的符号为化学制品跟 踪系统的一部分(你所假设的)绘制类图。
末页
业务需求
•业务需求是组织或客户对于系统的高层次目标要求,定义 了项目的远景和范围,即确定软件产品的发展方向、功能 范围、目标客户和价值来源。 •业务需求的内容
–业务:产品属于哪类业务范畴?应该完成什么功能?需要为什么
服务? –客户:产品为谁服务?目标客户是谁?
软件需求分析复习题
软件需求分析复习题一、判断题1、使用实例方法可以使用户更清楚地认识到新系统允许他做什么,那么我们就应该试图把每一个需求及一个使用实例相联系,尽可能多的使用实例。
〔F〕2、在状态图中定义的状态主要有:初态(即初始状态),终态(即最终状态)与中间状态,在一张状态图中只能有一个初态,而终态那么可以有0至多个。
〔T 〕3、构造化分析方法适合于数据处理类型软件的需求分析。
〔T〕4、数据流图中每个加工至少有一个输入数据流,但可以没有输出数据流。
〔F〕5、DFD及数据流程图的区别是程序流程图用于表示程序的过程设计,DFD用作描述软件的逻辑功能,不能表示程序的控制构造。
〔T〕6、属性是指实体某一方面的特征,一个实体通常有多个属性。
联系也可以有属性。
〔T〕7、软件需求描述的是“如何做〞,而不是“做什么〞。
〔F〕8、软件成功的标准是用户在用,并且可以很容易做完要做的事。
〔T〕9、业务规那么包括企业方针、政府条例、工业标准、会计准那么与计算方法等。
业务规划本身就是软件需求。
〔F〕10、软件需求的层次包括业务需求、用户需求、功能需求。
〔T〕二、选择题1.需求分析最终结果是产生〔C 〕A.工程开发方案B.可行性分析报告C.需求规格说明书D.设计说明书2.需求分析中,开发人员要从用户那里解决的最重要的问题是〔A 〕A.让软件做什么B.要给软件提供哪些信息C.需求软件工作效率怎样D.让软件具有何种构造3.需求规格说明书的内容不应包括对〔B 〕的描述。
A.主要功能B.算法的详细过程C.用户界面的运行环境D.软件性能4.需求规格说明书的作用不应包括〔D 〕A.软件设计的依据B.用户及开发人员对软件要做什么的共同理解C.软件验收的依据D.软件可行性研究的依据5.下面关于面向对象方法中消息的表达,不正确的选项是〔B 〕A.键盘,鼠标,通信端口、网络等设备——有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C.应用程序之间可以相互发送消息D.发送及接收消息的通信机制及传统的子程序调用机制不同6.面向对象技术中,对象是类的实例。
软件需求复习资料
第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.用例是对用户目标或用户需要执行的业务工作的一般性描述;使用场景则是某个用例的一条特定路径。
软件需求分析-复习题2
简答题1.需求分析的目的是什么?难点在哪里?需求分析为什么特别重要?ﻩ需求分析的目的:需求分析主要用于获取用户的具体需求,通过对实际需求的获取、分析、文档化和验证等需求分析过程,为进一步的设计和实现提供依据:(1)需求分类。
将软件功能、性能、可靠性等相关需求进行分类、逐一细化.(2) 面向用户获取并分析需求。
软件研发其他阶段都是面向技术的,只有需求分析阶段是面向用户的,深入调研获取并分析软件的功能、性能、可靠性等,也可从系统和用户需求中推导出软件具体需求,并检查需求定义准确性,是否存在二义性。
(3)检查和解决不同需求间的矛盾。
尽量达到均衡和优化。
(4)确定软件的边界,以及软件与环境的相互作用方式等.如应用及运行边界和环境。
(5)对需求文档化并进行最后验证与确认。
ﻩ难点:主要体现在以下5个方面:(1)问题确定难。
主要原因一是应用领域的复杂性及业务变化,难以具体确定;二是用户需求所涉及的多因素引起的,如运行环境和系统功能、性能、可靠性和接口等。
(2)需求动态性。
软件的需求在整个软件生存周期,常会随着时间和业务而有所变化。
有的用户需求经常变化,一些企业可能正处在体制改革与企业重组的变动期和成长期,其企业需求不成熟、不稳定和不规范,致使需求具有动态性。
(3)交流共识难。
需求分析涉及的人事物及相关因素多,与用户、业务专家、需求工程师和项目管理员等进行交流时,不同的背景知识、角色和角度等,使交流共识较难。
(4)完备一致难。
由于不同人员对系统的要求认识不尽相同,所以对问题的表述不够准确,各方面的需求还可能存在着矛盾.难以消除矛盾,形成完备和一致的定义。
(5)深入完善难.需求理解对不全面准确的分析,客户环境和业务流程的改变,市场趋势的变化等,也会随着分析、设计和实现而不断深入完善,可能在最后重新修订软件需求。
分析人员应认识到需求变化的必然性,并采取措施减少需求变更对软件的影响。
对必要的变更需求要经过认真评审、跟踪和比较分析后才能实施。
《软件需求分析、设计与建模》简答题样题2(含答案)
1.What is object technology? What do you perceive as object technology’s strength? It’s weakness?OOT is such a technology that facing the objective world and the question realm and using the generally thinking way of human-beings to acknowledge the nature world to describe some things.OOT fit the thinking way of human-beings and easy to protect and functions’ addition and decrease are also become more convenient. And OOT’s reusing is more strengthen.weakness2. What is UML? List at least three benefits of developing with UML.UML(Unified Modeling Language)is used to proceeding the visual model of software dense system.(1)UML can help to express things exactly.(2)UML can help programmer to write a better code.(3)UML can accelerate the procedure’s development.3.What process characteristic best fit the UML? Describe each characteristic.4.What is a use-case driven process? What is use-case? What are the benefits of use case?It is the use-case become a guidance of program.Use-case is a description of system functions.Use-case can help us to get a general impression of the determined system.5.What is system’s architecture? What is an architecture-centric Process?System’s architecture is an overall construction of a system, it include the concept, the requirements and all of the detail in implementing the project. The architecture-centric process is a process that exploit a software use the system’s architecture.6.What is iteration? What are the benefits of Iterative Development?Iteration is a way of exploiting the software that finishing the software in several steps, and it need the customer present his advices after every step in order to ensure the product can fit to the requirements of the customer’s. Iteration can ensure a lower risk in a large project.7.What are the basic principles of OO technology? Describe each in detail.Abstraction, it report those important properties connect to the applications.Encapsulation, it can cover details of implementation and is the basis of the modularity.Modularity, it break complex part into simple piecesHierarchy, it provides a method that can let the son class to get data from father class.8.What is use case model? Which artifacts can be included in a use case model?9.List three types of relationships existed between different use cases and give examples.Generalization, Include, Extend.Generalization, apples and bananas can be generalized as fruit.Include, the banana peel is included in the banana.Extend, we can eat the banana, but we can also smash it and mixed it with yogurt and drink it, drinking is an extension.10.Explain the following diagram and their elements with examples.1) Use case diagram 2) Activity diagram 3) Sequence diagram 4) Collaboration diagram5) Class diagram 6) state chart diagram 7) Deployment diagram1)2)3)4)5)6)7)11.Describe the similarities and differences between the sequence diagram and collaborationdiagram.They are both interactive diagram, but collaboration diagram don’t care about when the information be transferred.12.Define the different relationships in class diagram: dependency, association, aggregation,composition, generalization.Dependency, is a connection during two classes, one class depend another class.Association, it let a class acquire another class’s functions and attributes.Aggregation, it is the association but those two classes are in different levels, one is entity but the other one is part.Composition, it is a kind of aggregation, it demands the object that represent the entity in responsible of the life cycle of the object that represent the part.Generalization, it represents the hierarchy between two classes.13.What is a node in deployment diagram? List two different types of nodes.Node in deployment diagram always represent a device .14.Describe the extensibility mechanisms of UML.15.What is the function of Stereotypes?Give two examples of stereotypes.16.Explain the six best practices of software engineering.1)Iteration 2)Manage requirements 3)Module-basis architecture 4)visualization modeling5) software quality’s confirmation 6)Control the changes of software.17.What is RUP? How many phases are there in RUP? Describe each phase’s purpose andmilestone.It is a programming exploitation methodology which is OOT and web-basis.Inception, Elaboration, Construction, TransitionInception: Constructing the business cases of system and confirm the edge of the project.Lifecycle objective.Elaboration: Analysis the problem domain.Lifecycle architecture.Construction: Product’s exploitation.Initial operation.Transition: Ensuring the software is usable to the customer.Product release. and briefly describe the “4+1”views of architecture.Ans:Which of the four views are:Logical View which is the logical relationship around the objects,Process View which is the view that show the actions of the objects or software actions,Deployment View which is to show the relatonship between the module of the objects and Implementation View which is the software implementations.And the one view can be Use-Case View.19.What is the difference between analysis and design?The analysis focus on understanding of de problem,but the design focus on the understanding of the solution.20.Please describe the whole process of OO analysis and design with UML.Ans:1.Build the requirement model-the plan for the reqiurement2.Build the basic model-Class diagram3.Build the assistant diagram4.Design the protocol of the model5.Prototype Development21.What is a layered architecture? Give examples of typical layers.Ans:A layered architecture can be descript as the “separation of responsibility which is to say that each layer is responsible for a finite amount of work.For instance,a company may has its enterprise architecture.The layers of the manager and the layers of the employees.They have the responsibilities themselves and they have their own layers.22.What are analysis mechanisms? What are design mechanisms? Give examples.Ans:Analysis mechanisms can be a process which may run through the whole analysis.And so does the design mechanisms.For instance,a analysis mechanisms may contains Auditing, Communication and so on.23.What is an analysis class? Name and describe the three analysis stereotypes. Give examples. Boundary Classes: Behavior that involves communication with an actorEntity Classes: Behavior that involves the data encapsulated within the abstractionControl Classes: Behavior specific to a use case or part of a very important flow of events24.What is Use-case realization? What‘s your understandings about the benefit of the use-caserealization structure.Ans:The Use-case realization is a method to realize the problem that we should analyse.The use-case realization structure helps to organize the model elements needed to realize the use cases in the design model.25.Describe the steps occurred in the use-case analysis.Ans:It may contain five steps: (1)Identify Use Cases,(2)Indentify Domain Class and relationships,(3)Define the System Sequence Diagram for each use case,(4)Produce an operation,(5)Draw a sequence diagram for each use case.26.What’s the package, and why we need package?Ans:Package is a universal mechanism that organize other elements of the models together.Why we need?If a system has a lot of structures and we have to know more about the structures,then we should point to the so many elements that the systems or the structureshave.And at that time we can find that this may big a complex and hard work.So the package has been developed for this. Package is a universal mechanism that organize other elements of the models together.So we can analyse the system from the bigger layers instead of the great number of the element.27.What is a subsystem? What is an interface? How does a subsystem differ from a package? Ans: A subsystem is a coherent and somewhat independent component of a larger system.It is an element of the model,and it contains the semantics of the packages and the classes.An interface can be an operation about the subsystem.A subsystem realizes one or more interfaces that define its behavior.28.What is the purpose of describing the run-time architecture? How to model the process view? Ans:Describing the run-time architecture’s purpose is:Analyze concurrency requirements,Identify processes and threads,Identify process lifecycles, Map processes onto the implementation and Distribute model elements amongProcesses.The Process View is an “architecturally significant” slice of theprocesses and threads of the Design Model.Processes can be modeled using:1. Active classes (Class Diagrams) and Objects(Interaction Diagrams)ponents (Component Diagrams)29.What is the purpose of describing the distribution? How to model the deployment view? Ans:The purpose is to Reduce processor load.For the Special processing requirements,Scaling concerns,Economic concerns and Distributed access to the system.The Deployment View is an “architecturally significant” slice of the Deployment Model.The deployment view will contain nodes and connections.Connection lines are used to connect the nodes that will be Physical run-time computational resource,Processor node and Device node.And connections may contain Communication mechanism,Physical medium and Software protocol30.Describe the 3 typical distribution patterns, C/S , B/Sand P2P.Ans:C/S:Client/Server, in network connections pattern, besides coordinated net, but also has another form network, namely client/server net, Client/Server. In the client/server network, the server is the network core, but the client is the network foundation, the client dependence server obtains the network resource which needs, but the server provides the network for the client to resources.B/S: Browser/Server,is called as Browser/Server patterns.It is developing as the development of Internet,it is improved from the C/S.P2P: Peer-to-peer network. According to the network in the shared resource way's difference, the local area network has two kind of configurations of organization: One kind is the peer-to-peer network (), another kind is the workstation/server structure. Between peer-to-peer network's computer may correspond mutually and the shared resource (document, peripheral device and so on); But in the workstation/server structure's network may the shared resource place on special purpose computer - server (server), between workstation not mutually direct shared resource. 31.What is the difference between the process models of agile and RUP?Ans: Rational Unified Process is a whole software process,but the process models of agile may bea process in an Architecture or in part of a software.That is to say the RUP may contain the process models of agile.。
软件需求分析与设计复习题-软件工程
软件需求分析与设计复习题一.判断1、( × ) 程序设计语言种类很多,在进行软件开发时可以随便选择一种语言进行编码。
2. ( x ) 软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。
3、(× ) 在软件开发的各个阶段进行过程中,增加人员肯定会对整个项目提前完成有好处。
4.( x ) 好的测试用例应能证明软件是正确的。
5.( x ) 软件功能测试的测试用例主要是由需求阶段的功能说明部分转化而来。
6、( x ) CoCoMo模型可以用来估算系统的工作量和软件开发所需时间。
7.( x ) 有时为了测试的方便,而可以局部地修改软件系统。
8、( v ) OOA方法的核心思想是利用面向对象的概念和方法为软件需求建造模型,大致步骤是识别对象(属性和方法),识别类及其结构,定义对象之间的消息传递等。
9.( x ) 面向对象方法更适合于软件重用的根本原因在于它是软部件唯一的合成技术。
10、( v ) 系统需求分析员应该具有开发软、硬件系统的经验并且了解用户领域的知识。
11.( x ) 在软件的生命周期中,工作量最大的一个阶段就是编写程序。
12、( x )软件运行正确,可见软件中没有缺陷(fault)。
13.( x ) RUP(Rational Unified Process:统一软件过程)本质上是轻量级的软件过程规范。
14、( v )软件失败(failure)在系统交付之前和交付之后都可能被发现。
15.( x ) 基准测试(benchmark test)是非正式的用户确认和验收测试。
16、( x )开发人员和客户对软件质量因素的认可是完全一致的。
17.( x ) UML语言支持面向对象的主要概念,并与具体的开发过程相关。
18、( v )里程碑(milestone)就是开发过程中的某个活动(activity)。
19.( v ) 好的软件测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
软件需求分析笔试题库
《软件需求分析》题库《软件需求分析》课程组编2012年4月目录一、单项选择题 (2)二、填空题 (5)三、判断题 (9)四、名词解释题 (11)五、问答题 (14)六、案例分析题 (28)《软件需求分析》习题集一、单项选择题1、软件生产中产生需求问题的最大原因在于对应用软件的()理解不透彻或应用不坚决。
(A)复杂性(B)目的性(C)模拟性(D)正确性2、需求分析的目的是保证需求的()。
(A)目的性和一致性(B)完整性和一致性(C)正确性和目的性(D)完整性和目的性3、系统需求开发的结果最终会写入()。
(A)可行性研究报告(C)用户需求说明4、现实世界中的((B)前景和范围文档(D)系统需求规格说明)构成了问题解决的基本范围,称为该问题的问题域。
(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、按照开发方法进行分类,原型可分为:演化式原型和抛弃式原型,其中抛弃式原型又被细分为()。
软件工程复习题(带答案)
软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
软件需求工程复习题
需求工程练习题一、单选题(每空1分,共20分,请在备选答案中选择唯一一个正确的选项)1、产品特性可以称为质量属性,在众多质量属性中,对于开发人员来说重要的属性有哪些(B )A 有效性、效率、灵活性、互操作性B 可维护性、可移植性、可重用性、可测试性C 完整性、可靠性、健壮性、可用性D 容错性、易用性、简洁性、正确性2、需求包括11个方面的内容,其中网络和操作系统的要求属于(B),如何隔离用户之间的数据属于(C),执行速度、相应时间及吞吐量属于(D),规定系统平均出错时间属于(A )。
A 质量保证 B环境需求 C安全保密需求 D 性能需求3、需求分析过程应该建立3种模型,它们分别是数据模型、功能模型、行为模型。
以下几种图形中,(B)属于功能模型,(A)属于数据模型,(C)属于行为模型。
A 实体-联系图(ERD)B 数据流图(DFD)C 状态转换图(STD) D鱼骨图4、常用的需求分析方法有:面向数据流的结构化分析方法(SA),面向对象的分析方法(OOA),下列(D)不是结构化分析方法的图形工具。
A决策树 B数据流图 C数据字典 D快速原型5、软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。
其中,(B)和(C)用完就可以丢弃,而(A)围绕原型修改、增加。
A 进化型B 探索型 C实验型 D 以上都是6、(D)用于描述数据的处理过程。
A 数据字典 B决策树 C决策表 D 数据流图7、DFD的基本符号不包括下列哪种(A)A 数据字典B 加工C 外部实体D 数据流E 数据存储文件8、DD的主要字典条目包括以下哪种(E)A数据流 B文件 C 数据项 D加工 E以上都是9、常用的动态分析方法不包括以下哪种(B)A 状态迁移图B 层次方框图 C时序图 D Petri网10、需求分析阶段的文档包括以下哪些(E)A 软件需求规格说明书 B数据要求说明书 C初步的用户手册 D修改、完善与确定软件开发实施计划 E以上都是11、需求验证应该从下述几个方面进行验证:(C)A 可靠性、可用性、易用性、重用性B可维护性、可移植性、可重用性、可测试性C一致性、现实性、完整性、有效性 D 功能性、非功能性12、风险管理的要素包括哪项(D)A风险评价 B风险避免 C风险控制 D以上都是13、下列描述中错误的是(D)A每一个集成的需求变更必须能跟踪到一个经核准的变更请求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简答题1.需求分析的目的是什么?难点在哪里?需求分析为什么特别重要?需求分析的目的:需求分析主要用于获取用户的具体需求,通过对实际需求的获取、分析、文档化和验证等需求分析过程,为进一步的设计和实现提供依据:(1) 需求分类。
将软件功能、性能、可靠性等相关需求进行分类、逐一细化。
(2) 面向用户获取并分析需求。
软件研发其他阶段都是面向技术的,只有需求分析阶段是面向用户的,深入调研获取并分析软件的功能、性能、可靠性等,也可从系统和用户需求中推导出软件具体需求,并检查需求定义准确性,是否存在二义性。
(3) 检查和解决不同需求间的矛盾。
尽量达到均衡和优化。
(4) 确定软件的边界,以及软件与环境的相互作用方式等。
如应用及运行边界和环境。
(5) 对需求文档化并进行最后验证与确认。
难点:主要体现在以下5个方面:(1)问题确定难。
主要原因一是应用领域的复杂性及业务变化,难以具体确定;二是用户需求所涉及的多因素引起的,如运行环境和系统功能、性能、可靠性和接口等。
(2)需求动态性。
软件的需求在整个软件生存周期,常会随着时间和业务而有所变化。
有的用户需求经常变化,一些企业可能正处在体制改革与企业重组的变动期和成长期,其企业需求不成熟、不稳定和不规范,致使需求具有动态性。
(3)交流共识难。
需求分析涉及的人事物及相关因素多,与用户、业务专家、需求工程师和项目管理员等进行交流时,不同的背景知识、角色和角度等,使交流共识较难。
(4)完备一致难。
由于不同人员对系统的要求认识不尽相同,所以对问题的表述不够准确,各方面的需求还可能存在着矛盾。
难以消除矛盾,形成完备和一致的定义。
(5)深入完善难。
需求理解对不全面准确的分析,客户环境和业务流程的改变,市场趋势的变化等,也会随着分析、设计和实现而不断深入完善,可能在最后重新修订软件需求。
分析人员应认识到需求变化的必然性,并采取措施减少需求变更对软件的影响。
对必要的变更需求要经过认真评审、跟踪和比较分析后才能实施。
需求分析之所以特别重要是因为1)许多软件开发失败的原因都归结为需求分析没有做好。
2)需求分析输出的文档“用户需求报告”是客户、开发者、管理者三方遵守的基线,是产品验收的依据。
3)需求分析要占整个软件开发时间或工作量的30%左右。
4)需求分析出现错误会在后续的开发过程中发散式传播。
2.需求分析阶段的基本任务是什么?答:需求分析阶段的基本任务是:(1.问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.(2.分析与综合,导出软件的逻辑模型.(3.编写文档3需求规格说明书由哪些部分组成?各部分之间的关系是什么?答:软件需求说明书一般包括如下内容:1)引言部分编写目的;项目背景 (应包括:a.项目的委托单位、开发单位和主管部门;b.该软件系统与其他系统的关系。
) ;定义;(列出文档中所用到的专门术语的定义和缩写词的原文。
)参考资料。
2)任务概述目标;运行环境;条件与限制。
3)数据描述静态数据;动态数据 (包括输入数据和输出数据) ;数据库描述 (给出使用数据库的名称和类型) ;数据词典;数据采集。
4)功能要求功能划分;功能描述。
5)性能需求数据精确度;时间特性(如响应时间、更新处理时间、数据转换与传输时间、运行时间等);适应性(在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。
)6)运行需求用户界面(如屏幕格式、报表格式、菜单格式、输入输出时间等);硬件接口;软件接口;故障处理。
7)其他要求如可使用性、安全保密、可维护性、可移植性等。
8)附录4、假设现在由你来负责所在学校选课系统的需求工作,现在需要你来安排一次群体面谈,你打算怎么做?答:(1)目标和内容的确定(1分)(2)场地的确定(1分);解释场地的条件:提供各种开会需要材料,会议室、道具、餐饮等(1分)(3)时间的确定(1分);解释时间要求:全职的2~4天;(1分)(4)人员的确定(1分);解释多涉众的共同参与(1分)(5)会议准备(1分);准备会议讨论材料(1分);议程(1分)5如何有效的处理需求的变化是很多现代软件开发技术的主题,请从需求变更的原因、一般过程以及控制对策等方面谈谈你的看法。
答:(1)认识到需求变化是不可避免的;1分给出需求变化不可避免原因的解释;2分包括:问题发生了改变。
环境发生了改变。
需求基线存在缺陷。
(2)明确需求的变化是需要控制的;1分能够描述需求基线的概念;1分在响应需求变更的过程中,项目团队还要及时准确的维护需求基线,审计变更记录:要更新需求基线,保证项目涉众可以访问到最新的需求;能够描述需求变更的过程;2分(3)明确需求变化需要特殊处理的;1分能够大概写出特殊处理情况的;2分包括:●推迟产品的交付时间。
●要求增派人手。
当然,这个做法只有在有限的情况下有效,因为很多情况下,增加人手只会使得项目更加落后。
●要求员工加班工作。
一段时期的加班会耗尽员工的储备精力,因此加班不能是长期的,一般以30天为限,否则会产生很多消极影响。
因此,这个做法也只能适度的使用。
●推迟或者去除尚未实现的优先级较低的需求。
容许产品质量的降低。
当然,这个做法是最不提倡的,因为低质量的产品会伤害整个开发团队。
所以,除非其他的做法都不能达到效果,否则不要使用这种做法。
五、应用题(共24分, 每小题12分)1.进行需求文档写作时主要有三种手段:形式化语言、非形式化语言和半形式化语言,请:(1)说明这三种手段的不同及其各自的优缺点,以表达“每本书至少有一个作者”为例;(2)说明在实践当中,应该怎样综合运用这三种手段。
答:信息的描述语言可以分为三种类别:●非形式化语言,即自然语言。
●半形式化语言,比自然语言具有更丰富的语义和更严格的语法同时又没有严格到可以完全基于数学方法的语言,例如ER图、DFD图、UML等图形语言。
●形式化语言,基于数学的语言,例如VDM、Z语言等。
自然语言具有复杂的规则和多样化的表达方式,所以它的表达能力最为强大。
而且自然语言是属于普通人的语言,每个人都熟知其规则、表达方式和特点,所以非常利于用户的理解。
但同时自然语言也具有松散、模糊、歧义、凌乱等不好的特性。
这使得它无法被机器所理解,它所描述的信息内容也无法准确的映射为机器行为。
形式化语言是基于数学方法的语言,具有数学的表示法特性。
使用形式化语言描述的信息内容是可以进行逻辑一致性推导和证明的,所以它能够保证信息的正确性。
而且形式化的信息描述能够被机器所理解,它所描述的信息内容可以准确的映射为机器行为。
但是形式化描述的信息要求读者具备谓词演算方面的知识,这对普通的用户而言显然要求过高,以至于大多数用户无法读懂以形式化方法描述的信息。
形式化方法所能描述的内容也是有限的,具体的有限性因形式化方法的不同而各异。
半形式化语言是介于自然语言和形式化语言之间的描述语言。
一方面,半形式化语言具有严格的语法,定义方式比自然语言更加严格,这使得它可以避免自然语言模糊、松散、歧义、凌乱等不好的特性。
另一方面,半形式化语言具有丰富的语义,使用规则比形式化语言更复杂和多样,这使得它具有比形式化方法更强的表达能力。
但是,丰富的语义使得半形式化语言的语法无法严格到可以等价于数学方法的程度,所以它描述的信息还需要进行额外的处理才能够被机器所理解或者准确的映射为机器行为。
同时,严格的语法限制也使得半形式语言的表达能力无法达到自然语言的程度。
而且因为具有独特的语法和语义,所以半形式语言对普通用户而言无异于一门全新的语言,它所描述的信息很难被用户所理解。
为了让需求规格说明文档的内容能够同时满足用户和开发人员的需要,需求工程师在实践中更多的会综合使用自然语言、半形式化语言和形式化语言。
例如,为半形式化语言和形式化语言添加自然语言的注释,或者分别使用自然语言和半形式化语言(或者形式化语言)重复描述同样的信息,或者使用半形式语言和形式化语言描述概要与抽象信息,然后再用自然语言进行详细信息的描述。
2.下面是一段用例的描述,针对一个汽车保险系统中“将一辆新车加入一个已有保单中”的用例:(1)客户打电话给保险公司,并提供他的保单号,办事员输入这个信息,系统显示基本的保单。
然后办事员检查信息,以确保保险费通用及保单有效;(2)客户给出要添加的汽车的牌子、模型、年份和车辆识别代号(VIN),办事员输入这些信息系统验证这些数据是否有效。
然后客户选择期望的保额类型,以及每种类型的数量,办事员输入这些信息,系统会逐一记录并根据保单限制验证所请求的数量。
输入所有的保额后,系统验证保额总和,包括保单上的其他汽车;(3)最后,客户必须要确认所有的驾驶员,以及他们驾驶汽车的时间比例。
如果有一个新驾驶员加入,则调用另一个用例“增加新驾驶员”;(4)整个过程最后,系统更新保单,计算新的保险费,打印新的保单说明,邮寄给保单所有人。
请你为其设计:(1)领域模型(要求给出建立过程);(2)活动图。
答(1)领域模型:结果基本正确(4分);给出了过程(2分)(2)活动图:结果基本正确(8分)。