软件需求分析-复习题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)和加⼯说明的描述⼯具,即⽤直观的图和简洁的语⾔来描述软件系统模型。

软件需求分析

软件需求分析

软件需求分析一、复习要求1. 了解软件需求的目标和任务。

2. 了解软件软件需求的获取方法。

3. 了解可行性研究的方法和可行性研究报告的主要内容。

4. 掌握结构化分析方法。

5. 了解支持需求分析的原型化方法。

6. 了解需求规格说明和需求评审的主要内容。

二、例题分析【例1】软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( )。

供选择的答案:A. 总结B. 阶段性报告C. 需求分析评审D. 以上答案都不正确答案: C.分析:作为需求分析阶段工作的复查手段,在需求分析的最后一步,应该对功能的正确性、完整性和清晰性,以及其它需求给予评价。

一般,评审的结果都包括了一些修改意见,待修改完成后再经评审通过,才可进入设计阶段。

【例2】各种需求方法都有它们共同适用的( )。

供选择的答案:A.说明方法B.描述方式 C. 准则D.基本原则答案: D.分析:虽然各种分析方法都有独特的描述方法,但所有的分析方法还是有它们共同适用的基本原则。

这些基本原则包括:需要能够表达和理解问题的信息域和功能域;要能以层次化的方式对问题进行分解和不断细化;要分别给出系统的逻辑视图和物理视图。

【例3】在结构化分析方法中,用以表达系统内数据的运动情况的工具有( )。

供选择的答案:A. 数据流图B. 数据词典C. 结构化英语D. 判定表与判定树答案: A.分析:数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,所以,它不是描述数据的静态结构,而是描述数据流的传递和变换。

数据词典主要用于定义数据和控制对象的细节,结构化英语、判定表和判定树主要用于描述加工规格说明,都不是表达数据在系统内运动情况的工具。

【例4】在结构化分析方法中用状态―迁移图表达系统或对象的行为。

在状态―迁移图中,由一个状态和一个事件所决定的下一状态可能会有( )个。

供选择的答案:A. 1B. 2C. 多个D. 不确定答案: C.分析:在状态―迁移图中,由一个状态和一个事件所确定的下一状态可能会有多个。

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

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

软件需求期末考试题及答案# 软件需求期末考试题及答案一、选择题(每题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.关于软件测试的目的,下面观点错误的是) 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。

软件需求分析习题大全

软件需求分析习题大全

软件需求分析习题大全 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】习题集一、单项选择题1、需求分析最终结果是产生()。

A.项目开发计划 B.可行性分析报告 C.需求规格说明书 D.设计说明书答案:C2、需求分析中,开发人员要从用户那里解决的最重要的问题是()。

A.让软件做什么 B.要给软件提供哪些信息C.要求软件工作效率怎样 D.让软件具有何种结构答案:A3、需求规格说明书的内容不应包括对()的描述。

A.主要功能 B.算法的详细过程 C.用户界面和运行环境 D.软件性能答案:B4、需求规格说明书的作用不应包括()。

A.软件设计的依据 B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据 D.软件可行性研究的依据答案:D5、下面关于面向对象方法中消息的叙述,不正确的是()。

A.键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同答案:B6、面向对象技术中,对象是类的实例。

对象有三种成份:()、属性和方法(或操作)。

A. 标识B. 规则C. 封装D. 消息答案:A7、软件需求分析阶段的工作,可以分成以下四个方面:对问题的识别、分析与综合、制定规格说明以及()。

A.总结 B.实践性报告C.需求分析评审 D.以上答案都不正确答案:C8、软件需求规格说明书的内容不应包括对()的描述。

A.主要功能 B.算法的详细过程C.用户界面及运行环境 D.软件的性能答案:B9、产品特性可以称为质量属性,在众多质量属性中,对于开发人员来说重要的属性有哪些(B )A 有效性、效率、灵活性、互操作性B 可维护性、可移植性、可重用性、可测试性C 完整性、可靠性、健壮性、可用性D 容错性、易用性、简洁性、正确性10、需求包括11个方面的内容,其中网络和操作系统的要求属于(B ),如何隔离用户之间的数据属于(C),执行速度、相应时间及吞吐量属于(D ),规定系统平均出错时间属于(A )。

软件工程六十题需求分析

软件工程六十题需求分析

软件工程六十题1﹑软件产品的特性是什么?产品特性:⑴是一种逻辑产品,与物质产品有很大的区别。

⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。

⑶软件产品不会用坏,不存在磨损,消耗。

⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的⑸开发软件的费用不断增加,致使生产成本相当昂贵。

2﹑软件生产有几个阶段?各有何特征?⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。

⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。

⑶软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。

3﹑什么是软件危机?产生原因是什么?软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:⑴软件规模越来越大,结构越来越复杂。

⑵软件开发管理困难而复杂。

⑶软件包开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

4﹑什么是软件工程?它目标和内容是什么?软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程内容:研究内容包括开发技术和开发管理两个方面。

开发技术主要研究:软件开发方法,开发过程,开发工具和环境。

开发管理主要研究:软件管理学,软件经济学,软件心理学。

5﹑软件工程面临的问题是什么?软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。

6﹑什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件需求分析-复习题264743

软件需求分析-复习题264743

简答题1.需求分析的目的是什么?难点在哪里?需求分析为什么特别重要?需求分析的目的:需求分析主要用于获取用户的具体需求,通过对实际需求的获取、分析、文档化和验证等需求分析过程,为进一步的设计和实现提供依据:(1) 需求分类。

将软件功能、性能、可靠性等相关需求进行分类、逐一细化。

(2) 面向用户获取并分析需求。

软件研发其他阶段都是面向技术的,只有需求分析阶段是面向用户的,深入调研获取并分析软件的功能、性能、可靠性等,也可从系统和用户需求中推导出软件具体需求,并检查需求定义准确性,是否存在二义性。

(3) 检查和解决不同需求间的矛盾。

尽量达到均衡和优化。

(4) 确定软件的边界,以及软件与环境的相互作用方式等。

如应用及运行边界和环境。

(5) 对需求文档化并进行最后验证与确认。

难点:主要体现在以下5个方面:(1)问题确定难。

主要原因一是应用领域的复杂性及业务变化,难以具体确定;二是用户需求所涉及的多因素引起的,如运行环境和系统功能、性能、可靠性和接口等。

(2)需求动态性。

软件的需求在整个软件生存周期,常会随着时间和业务而有所变化。

有的用户需求经常变化,一些企业可能正处在体制改革与企业重组的变动期和成长期,其企业需求不成熟、不稳定和不规范,致使需求具有动态性。

(3)交流共识难。

需求分析涉及的人事物及相关因素多,与用户、业务专家、需求工程师和项目管理员等进行交流时,不同的背景知识、角色和角度等,使交流共识较难。

(4)完备一致难。

由于不同人员对系统的要求认识不尽相同,所以对问题的表述不够准确,各方面的需求还可能存在着矛盾。

难以消除矛盾,形成完备和一致的定义。

(5)深入完善难。

需求理解对不全面准确的分析,客户环境和业务流程的改变,市场趋势的变化等,也会随着分析、设计和实现而不断深入完善,可能在最后重新修订软件需求。

分析人员应认识到需求变化的必然性,并采取措施减少需求变更对软件的影响。

对必要的变更需求要经过认真评审、跟踪和比较分析后才能实施。

软件工程-需求分析习题

软件工程-需求分析习题

数据流图例题:1、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。

客户可在其收到的目录上圈定自己要买的书。

出版公司按照客户的反馈信息邮寄图书。

要求为出版公司设计软件,以实现以下功能:(1)自动生成图书分类目录;(2)自动处理客户反馈信息。

试用面向数据流的方法给出系统的数据流图2、根据下列描述,画出学生申请IC借书卡管理系统的数据流图。

学生入学后到图书馆申请IC借书卡,图书馆管理人员根据IC借书卡库存情况分析是否需要购买新的IC借书卡,如需购买,则向IC借书卡提供商购买。

各种资金往来通过学校的会计科办理。

判定表例题请用结构化语言、判定表和判定树表示下面描述的耗电记费系统中电费的计算方法:1、耗电记费系统可以采用固定价格收费和浮动价格收费两种方式。

若采用固定价格方式收费,对每月耗电100KW•h以下的用户只征收最低标准费,超过100KW•h的用户按价格表A收费;若采用浮动价格方式收费,则每月耗电100KW•h以下的用户按价格表A收费,超过100KW•h的用户按价格表B收费。

2、某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。

请用结构化语言、判定表和判定树描述上述问题。

数据流图答案判定表答案:THEN IF 文化程度=初中THEN 脱产学习ELSE 工作为电工ENDIFELSE IF 年龄≤40THEN IF (文化程度=大学)THEN 工作为技术员ELSE IF 性别=男性THEN 工作为钳工ELSE 工作为钳工ENDIFENDIFELSE IF (文化程度=大学)THEN 工作为技术员ELSE 工作为材料员ENDIFENDIFENDIF。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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分)客户保单-姓名 -地址1 *-保单号 -保险费-保单帐号(2)活动图:结果基本正确(8分)-内容对象汽车-VIN-模型-年份-牌子-保险对象-保险额度保额-类型-数量。

相关文档
最新文档