第五章 软件需求分析过程
1. 需求分析过程主要有哪几个步骤?
需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说
明、需求验证、变更管理等步骤。
2. 软件需求有哪几类,他们有什么不同?
软件系统需求常常分为功能需求、非功能需求和领域需求。功能需求描述系统预期提供
的功能或服务,包括对系统应提供的服务,如何对输入做出反应以及系统在特定条件下的行
为的描述。非功能需求是指那些不直接与系统具体功能相关的一类需求,主要与系统的总体
特征相关,是一些限制性要求,是对实际使用环境所做的要求。领域需求是系统的应用领域
需求,对已存在的功能预期的约束或者是需要实现的一个特定的计算。
3. 用户需求和系统需求各有什么特点?
用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识
的用户能看懂。用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。
系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、
一致的系统描述,是软件工程人员系统设计的起点。系统需求描述可能包括许多不同的模型,
如对象模型和数据流模型。
4. 请分析 POS 机系统种共利益者之间的功能有那些冲突的地方?
比如:收银员和顾客希望系统能够及时显示商品价格,这就要求本地存储价目表,导致
大存储量而需要高成本设备;但公司希望低成本的 pos 机,从服务器上下载商品价目表而减
少机器负担。
5. 请对出卷系统的功能进行划分,确定哪些是必须的、必要的和重要的。
必须的功能:自动出卷、手动出卷
必要的功能:试题管理
重要的功能:自动出卷、手动出卷
6. 请针对图书馆系统填写表 5-6 返回跟踪表。
需求
系统
图书借出
图书归还
图书续借
图书预约
图书管理
用户管理
客户经理
客户
设计师
√
√
√
√
√
√
√
√
√
√
√
开发工程
测试工程
需求分析
师
√
√
师
师
√
√
√
√
7. 请对出卷系统的功能需求进行分析,是否存在重复或遗漏的需求。
自动出卷、手动出卷共同的需求出卷要求,且出卷要求也比较复杂,需要单独的功能完
成,并且可以存储以便下次使用。因此可以增加“设置出卷要求”功能。
8. 请补充案例研究的非功能需求。
如图书馆的非功能需求:
(1)借一本书过程要求不超过 5 秒
(2)图书馆藏书在 200,000,000 册以上
9.请扩展短信系统成为一个短信客服中心,给出该系统的需求。
本系统主要功能需求有:
短信发送:填写发送内容,选择发送用户,并指明是否要回执,然后发送短信。(通
过无线终端或短信网关)
短信接收:从无线终端或短信网关读取短信内容,并显示查看。
用户管理:添加新用户,更新用户信息,删除用户。
自动应答:根据用户的要求自动应答。
10.请描述图书馆系统的借书的一个常规场景。
用例名称:借书
范围:图书管理图书流通应用
级别:用户需求
主要参与者:借阅者
涉众及其关注点:
(1)浏览者:希望能够不需要登录系统即可快速地浏览图书和查询信息。
(2)借阅者:希望在登录系统后可以借书,能查查询自己信息和借书情况
(3)普通管理员:希望能够协助借书者完成借书功能,形成借书报表给借阅者查看确
认。
前置条件:借书者要登录系统或者验证借书证
成功保证:创建借书记录,更新借书信息,形成借书报表。
主成功场景:
(1)普通管理员扫描借书证。
(2)检查是否可以借书
(3)若可借,则扫描图书
(4)显示已借书数,显示借书成功
…重复(2)-(4)
(5)借书结束
11.请描述银行客户从 ATM 机上取一笔钱的场景。
客户插入银行卡后输入密码。客户选择“取款”项,屏幕跳出选择取款金额菜单以及一
次性可取出的最大金额,客户根据自身需要选择预设金额或者自己输入想要取出的金额。机
器根据客户输入的金额进行出钞,如果余额不足,则屏幕提示客户无法提取相应金额。客户
选择提取较小金额或者选择退出系统,取卡。否则在正常情况下按客户所需输出相应钞票。
屏幕提示在 30 秒内取走钞票。完成交易,客户退出系统,取卡。
第 6 章 结构化分析建模
(1)什么是结构化分析?
结构化分析方法是一种传统的系统建模技术,其过程是创建描述信息内容和数据流的模
型,依据功能和行为对系统进行划分,并描述必须建立的系统要素。
(2)结构化分析要创建哪些模型?
结构化的需求分析模型有数据流模型、状态转换模型、实体—关系模型等。数据流模型
集中在数据的流动和数据转换功能,而不关心数据结构的细节。实体—关系模型关心的是寻
找系统中的数据及其之间的关系,却不关心系统中包含的功能。系统的行为模型包括两类模
型:一类是数据流模型,用来描述系统中的数据处理过程;另一类是状态转换模型,用来描
述系统如何对事件做出响应。
(3)加工逻辑描述有哪些方法,它们之间有什么优缺点?
加工逻辑也称为过程说明,用于描述数据流图中加工逻辑的处理算法或过程,一般用
以下三种工具:过程描述语言、判定表和判定树。
过程描述语言介于自然语言和形式语言之间的一种半形式语言,过程描述语言是在自
然语言基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑。
判定表和判定树能够把在什么条件下系统应做什么动作准确无误地表示出来,适合多
分支情况。判定树是判定表的变形,一般情况下它比判定表更直观,且易于理解和使用。
(4)请分析自动出卷与手动出卷在功能上有什么不同?
自动出卷能够根据出卷要求自动选择试题和评价试卷,手动出卷则需要用户交互从根据
条件筛选的每类型题目中选择需要的题目。
(5)如果要在获取出卷要求时可参照以往的出卷要求,请修改图 6-5。
1
试卷
依据
*
1
出卷要求
包含
*
题目
1
1
抽取
试卷
(6)图书馆系统中在检查读者可借性要考虑哪些规则?
规则:
未借满
没有超期图书
罚金<2.0 元
(7)借书功能的可借性是否要考虑预约?
可以不用考虑,因为当图书在架时(在书库),图书可以借,所以不能预约该图书。当
被预约的图书归还时会放在预约架,所以不会出现预约图书被借的情况。
(8)请补充 POS 机系统中的帐务和库存两个数据存储的数据信息。
帐务:销售号+金额+日期+收银员
库存:商品号+名称+厂家+进货价格+数量
(9)请用 PDL 语言描述借书功能中读者可借性的加工逻辑描述。
判断读者可借性 seq
return true
判定已借书数是否超过最大数 seq
then
if borrowedsum == maxmun
return false
else
return true
已借书数是否超过最大数 end
判定是否有超期图书 iter until recordnumber>0
if 图书的归还日期<当前日期 then
return false
else
return true
是否有超期图书 end
判定罚金额是否大于规定值 seq
if penitentvalue > 2.0 then
return false
else
return true
罚金额是否大于规定值 end
统计空格 end
(10)图 6-23 中,如果库存系统和账务系统已经实现,如何修改该数据流图。
商品信息
商品信息
销售记录
商品
收银
读入商品
销售单
计算总价
销售单
与总价
付款
销售单
销售
票据
打印票据
销售单
记录销售
账务系统
库存系统
销售单
销售单
(11)出卷系统中,在试题中的题干图和答案图只存储图的文件名,为什么?
由于有些试题有图,而有些没有,可以节约存储。
(12)如何解决不同类型题目的答案存储问题,如应用题和简答题的答案可能较长,而选择
题和填空题的答案比较短。
建议将选择题单独建立表处理。
第七章 面向对象分析
1.
2.
请简要说明结构化分析和面向对象分析的差别?
请简述面向对象分析有哪些分析模型?
面向对象建模技术所建立的三种模型,即对象模型、动态模型和功能模型,分别从三个
不同侧面描述了所要开发的系统。功能模型指明了系统应该“做什么”;动态模型明确规定
在何种状态下,接受什么事件的触发而“做什么”;对象模型则定义了“做什么”的实体。
3.
请简述统一建模过程框架。
UML 模型结构可分为四个抽象层次,即元元模型、元模型、模型和用户模型。元元模
型层定义了描述元模型的语言,它是任何模型的基础。UML 元元模型定义了元类、元属性、
元操作等一些概念。元模型层定义了描述模型的语言,它组成 UML 模型的基本元素,包括
面向对象和构件的概念,如类、属性、操作、构件等。模型层定义了描述信息领域的语言,
它组成了 UML 模型。用户模型层是模型的实例,用于表达一个模型的特定情况。
4.
活动图与泳道图的区别?
UML 泳道图(swimlane)是活动图的一种有用的变形,可以让建模人员表示用例所描述
的活动图,同时看哪个参与者或分析类对活动矩形所描述的活动负责。泳道用纵向分割图的
并列条形部分表示,就像游泳池中的泳道,也称特定分区。
5.
请解释逻辑架构的概念和表示方法。
逻辑架构是类的宏观组织结构,它将类组织为包、子系统和层等。层是对类、包或子系
统的甚为粗粒度的分组,是有对系统主要方面加以内聚的职责。
6.
请为 ATM 机开发活动图。
7.
请为短信系统开发活动图。
8.
请举例说明向自身发送消息的情况。
还书 [n <= m+1]
还书 [n = m]
可借
不可借
借书 [m = n+1]
借书 [n > m+1]
9.
请用 CRC 卡编写短信系统的职责与协作者。
短信类 CRC 卡
Class:短信类
说明:短信信息
职责:
得到内容
协作类:
编码类
得到短信中心号码 转发类
得到时间
得到目标号码
发送编码类 CRC 卡
Class:发送编码类
说明:发送编码
职责:
编码
协作者:
写串口类
接收接码类 CRC 卡
Class:接收解码类
说明:接收解码
职责:
解码
协作者:
读取串口类
写串口类
读串口类
Class:写串口类
说明:写入串口信息
职责:
写入串口
协作者:
无
Class:读串口类
说明:读取串口信息
职责:
协作者:
读取串口
无
10.
请补充 POS 机的 CRC 卡描述。
退货类 CRC 卡
Class:退货类
说明:完成一次退货
职责:
创建退货商品
计算价格
创建退付
关联销售
协作类:
商品类
商品列表类
退付类
销售类
Class:商品类
说明:所退商品
职责:
实例化
协作者:
无
3
商品类 CRC 卡
退货商品列表 CRC 卡
Class:退货商品类表类
说明:存放退货商品项
职责:
计算小计
添加商品
删除商品
协作者:
商品描述类
商品类
商品类
商品描述类 CRC 卡
Class:商品描述类
说明:描述商品信息
职责:
获取描述
获取价格
协作者:
无
销售类
11.请给出短信系统的 SSD 和操作契约。
短信系统的 SSD
sendMessage()
操作契约:
1
操作名称:sendMessage(content ,number)
交叉引用:发送短信用例
前置条件:发送设备正常,串口正常
后置条件:(1)创建了 message 的实例(创建关联)
(1) message.content 赋值为 content(修改属性)
(2) message.number 赋值为 number(修改属性)
(3) message 与 sendmessageList 关联(形成关联)
receiveMessage()
2
操作名称:receiveMessage()
交叉引用:接收短信用例
前置条件:发送设备正常,串口正常
后置条件:(1)创建了 message 的实例(创建关联)
(2) message 与 receivemessageList 关联(形成关联)
12 请给出 ATM 机的 SSD 和操作契约。
这里只给出 ATM 客户端情况