SoftwareEngineering软件工程第十一章获取功能性需求一、功能性需求功能性需求是用来描述系统能够提供哪些功能来解决用户提出的问题。已经学习过的描述功能性需求技术结构化的功能模型•以数据流程图为核心,描述数据在流动加工过程中的变化,抽取功能模型。面向对象的功能模型强调人们日常描述问题的习惯和形式。分析者利用情景或经历来描述用户和软件系统之间的交互方式,从而获取需求。IvarJacobson把这种看法系统地阐述成用例的方法,利用它进行需求获取和建模。用例的概念用例描述了在不同条件下,系统对某一项目相关人员的请求所作出的响应,是系统中各相关人员之间就系统行为所达成的契约。根据参与者作出的请求和请求涉及的条件,系统将执行不同的行为序列,每一行为序列被称之为一个场景。一个用例是多个不同场景的集合。二、用例模型1.用例的描述形式用例实例用例名称:通过万维网购买股票范围:私人顾问系统中金融包功能(PAF)项目相关人员和利益:•购买——购买股票,并希望所买股票能自动被加到金融包中。•股票代理商——希望得到全部的购买信息。前置条件:用户已经启动PAF成功保障:远程web站点认可此次购买事件;日志和用户记录被更新。基本流程:1、购买者选择通过万维网来购买股票。2、系统从用户那里得到所用站点的名称。3、系统与该站点建立网络连接,并保持控制权。4、购买者在该站点上浏览并购买股票。5、系统截取站点的响应信息,并更新购买者的记录。6、系统向用户显示更新后的记录情况。分支流程:2a.购买者要使用一个系统不支持的站点:2a1.系统从购买者那里获取新建议,转向取消系统支持的用例。3a.在设置过程中,网络发生故障:3a1.系统向购买者报告错误,并建议他退回到第一步3a2.购买者或者退出用例,或者重新再试。4a.计算机系统崩溃,或在交易过程中被关掉4a1.(这时我们该怎么办?)4b.web站点没有及时认可此次购买活动,而是把它推迟处理:4b1.系统把这次推迟事件记入日志,设置一个时钟,定期向购买者询问结果用例的特征用例是一个自包含的单元用例必须由参与者发起并监控用例必须完成一个特定目标用例应该使系统保持在稳定状态用例是黑盒风格需求并不是在项目一开始就很明确,往往是随着项目的推进,逐渐细化。人的认知往往具有层次的特性。从粗到细、从一般到特殊。采用不同的层次来描述,适于认知的过程。例子用例的层次高层次目标—概要级用例低层次目标—用户级用例黑盒风格非黑盒风格系统记录图书信息系统将录入图书信息写入数据库。……或者(更糟糕的描述)系统对录入图书信息生成SQLINSERT语句…...用例模型是所有书面用例的集合是系统功能性和环境的模型用例模型中可包括UML用例图,以显示用例和参与者的名称及其关系用例的可视化描述藏宝者图书管理统计晒书计划借阅还书上报图书信息登录藏书室资料管理员系统管理员用户管理规则制定系统设置actor院图书管理系统系统边界通信计算机系统参与者表示法参与者用例关系2.用例之间的关系用例之间的联系预定游船验证代理人收集支付信息预定航班为飞行常客预定航班代理人includecommunicatecommunicateextend单向include用登录验证代理人用指纹扫描验证代理人3.参与者概念也可称为执行者。是任何具有行为的人或事物。参与者和用例通信并且期待它的反馈——一个有价值或可觉察的结果。参与者的类型有三种主要参与者•具有用户目标,并通过使用当前系统的服务完成。例如,收银员。他们是发现驱动用例的用户目标。协助参与者•为当前系统提供服务。例如,自动付费授权服务。协助参与者通常是计算机系统,但也可以是组织或人。通过协助参与者可以明确外部接口和协议。幕后参与者•在用例行为中具有影响或利益,但不是主要或协助参与者。例如政府税收机关。幕后参与者的确定确保确定并满足所有必要的重要事务。如果不明确地对幕后参与者进行命名,则有时很容易忽略其影响或利益。4.用例的描述方法三种常用形式摘要•简介的一段式概要,通常用于主成功场景非正式•非正式的段落格式。用几个段落覆盖非正式场景详述•详细编写所有步骤及各种变化,同时具有补充部分,如前置条件和成功保障。用例是文本形式的。详述形式的用例模板内容用例的不同部分用例名称范围级别主要参与者涉众及其关注点前置条件成功保证基本流程分支流程特殊需求技术和数据变元表发生频率杂项以动词开始要设计的系统“用户目标”或是“子功能”注释调用系统,使之交付服务关注该用例的人及其需要值得告知读者的,开始前必须为真的条件值得告知读者的,成功完成必须满足的条件影响对实现的调查、测试和时间安排例如未解决问题典型的、无条件的、理想方式的成功场景成功或失败的替代场景相关的非功能性需求不同的I/O方法和数据格式构建用例的过程将事件表按照参与者分组对事件进行归类,命名具有群集趋向的事件•这些事件的共同点是什么?•这些事件有相同的最终目标吗?倘若有,目标是什么?采用用例图描述分析的结果对用例进行描述三、由事件表向用例的转化用例产生的过程特性事件清单事件表用例分解细化归纳1.描述系统特性根据业务目标构建系统特性业务目标列表系统特性列表提高图书管理员执行借还业务的效率帮助藏书者合理利用图书资源加强私有图书的利用率方便藏书者对私有图书的借还管理方便图书借阅规则的制定到期自动提示用户应该归还图书预借提示、预还提示图书催还图书信息的维护(增删改查)图书共享(晒书计划)共享图书管理系统规则设定列出事件清单资源共享管理系统读者还书读者借书新书到货增加新用户环境中发生的外部事件借书到期催还图书生成月统计报表系统内部发生的临时事件2.编写事件清单3.编写事件表主语谓语宾语到达方式响应资料管理员登记新书阵发式编辑新书,并保存在系统中读者借阅图书阵发式告知藏书者要借阅的信息并进行记录读者归还图书阵发式告知藏书者要借阅的信息并进行记录资料管理员获得图书统计清单阵发式产生图书统计清单资料管理员获得图书推荐清单阵发式产生图书推荐清单藏书者保存图书资料阵发式编辑资料,并保存在系统中藏书者公开闲置图书阵发式完成要求拣书者获得晒书清单阵发式完成要求拣书者收藏书目阵发式记录收藏信息拣书者获得图书阵发式修改图书借阅状态拣书者评论图书阵发式记录评语拣书者推荐图书阵发式编辑推荐信息并保存在系统中系统发送催还通知单周期式产生到期催还通知单系统生成图书统计表周期式产生图书统计表将MSMS项目事件表进行分组主语谓语宾语到达方式响应资料管理员登记新书阵发式编辑新书,并保存在系统中资料管理员获得图书统计清单阵发式产生图书统计清单,并以报表的形式进行输出资料管理员获得图书推荐清单阵发式产生图书推荐清单,并以报表的形式进行输出系统使用者验证身份阵发式根据系统保存的用户信息进行比对,做出是否是系统用户的答复藏书者修改图书资料阵发式编辑资料,并保存在系统中藏书者添加藏书信息阵发式编辑新加入的图书信息,并保存在系统中藏书者删除藏书信息阵发式从系统中删除此项图书信息藏书者公开闲置图书阵发式完成要求拣书者借阅图书阵发式告知藏书者要借阅的信息并进行记录拣书者归还图书阵发式告知藏书者要借阅的信息并进行记录拣书者获得晒书清单阵发式完成要求拣书者收藏书目阵发式记录收藏信息拣书者获得图书阵发式修改图书借阅状态拣书者评论图书阵发式记录评语拣书者推荐图书阵发式编辑推荐信息并保存在系统中系统发送催还通知单周期式产生到期催还通知单系统生成图书统计表周期式产生图书统计表整理后的用例图藏书者资料管理员添加藏书修改藏书删除藏书登录管理藏书查询藏书获得晒书清单借阅归还浏览图书评论获取推荐清单统计推荐时间发送催还通知生成统计报表拣书者确认还书收藏4.使用用例图进行归纳整理5.对用例进行描述对用例的描述摘要式描述登录:设定使用权限。用户提供用户名和密码,系统根据注册信息进行验证,通过后根据用户权限显示主界面。藏书管理:对个人拥有图书信息的管理。添加:登记新购买图书的信息,包括书名、作者、译者、出版社、购买时间(系统自动给出录入时间)、价格、对图书的推荐信息、喜爱程度(默认情况下为3星,最高等级为5级,最低等级为1级),数量(默认为1本,极个别情况会出现多本重复书籍)、归类(方便管理,可自己设定归类名称)。系统根据图书名称进行重复图书检查之后,将图书信息进行存储,并提示存储成功。系统重新显示初始录入界面,用户可以进行下一本图书的录入过程。还书:将拣来的图书进行归还。从晒书场上捡来的图书到期后,拣书者应主动向藏书拥有者归还图书。系统在收到捡书者的归还请求后,自动向藏书拥有者发送提示信息。藏书拥有者在确定拿到图书后,通过系统进行确认彻底改变图书的状态(变为被晾晒图书,或收回私人藏书室)图书推荐:老师们可以推荐自己喜爱的图书,得到的推荐列表可以作为购买图书的依据。非正式形式的样例项目用例用例UC2:藏书管理对个人拥有图书信息的管理。用例UC2.1:添加藏书基本流程:•藏书者登记新购买图书的信息,包括书名、作者、译者、出版社、购买时间(系统自动给出录入时间)、价格、对图书的推荐信息、喜爱程度(默认情况下为3星,最高等级为5级,最低等级为1级),数量(默认为1本,极个别情况会出现多本重复书籍)、归类(方便管理,可自己设定归类名称)。•系统进行输入信息的有效性检查•系统根据图书名称进行重复图书检查•存储图书信息,并提示存储成功。•系统重新显示初始录入界面,用户可以进行下一本图书的录入过程。分支流程:1.a、如果藏书者录入信息有误1、系统提示藏书者此信息2、返回添加藏书界面,界面保持原来填写数据3.a、如果图书名称发生重复,系统将提示此信息,并给出相应图书列表,用户可以查阅图书的详细信息,同时要求用户对此情况进行处理。1、如果确认图书录入重复,则系统放弃对当前图书信息的存储2、如果只是同名不同书,则用户确认此情况后,系统对当前录入的图书信息进行保存。详述形式的样例项目用例用例UC2.1:添加藏书范围:应用级别:用户目标主要参与者:藏书者、资料管理员涉众及其关注点:藏书者:录入信息时,希望能够简洁快捷前置条件:已经确认使用身份成功保证:系统增加一条新录入藏书的信息基本流程:1、登记新购买图书的信息,包括书名、作者、译者、出版社、购买时间(系统自动给出录入时间)、价格、对图书的推荐信息、喜爱程度(默认情况下为3星,最高等级为5级,最低等级为1级),数量(默认为1本,极个别情况会出现多本重复书籍)、归类(方便管理,可自己设定归类名称)。2、系统进行输入信息的有效性检查3、系统根据图书名称进行重复图书检查4、存储图书信息,并提示存储成功。5、系统重新显示初始录入界面,用户可以进行下一本图书的录入过程。分支流程:1.a、如果藏书者录入信息有误1、系统提示藏书者此信息2、返回添加藏书界面,界面保持原来填写数据3.a、如果图书名称发生重复,系统将提示此信息,并给出相应图书列表,用户可以查阅图书的详细信息,同时要求用户对此情况进行处理。1、如果确认图书录入重复,则系统放弃对当前图书信息的存储2、如果只是同名不同书,则用户确认此情况后,系统对当前录入的图书信息进行保存。特殊需求:希望能够上传图书封皮的小图像希望系统能够对新录入的图书自动根据编码规则编号技术和数据变元表:资料管理员在录入图书信息时,希望使用读卡器读取图书的ISDN号发生频率:阵发式杂项:系统是否能够提供嵌入式的图像扫描功能,并自动转换成图书封面格式练习:将RP项目事件表进行分组(原始表)RP公司的应用程序中的事件表主语动词宾语频率到达方式响应顾客下订单1000/天阵发式编辑订单并将其保存在系统中运货职员发送货物700/天阵发式货物打包,并根据发货要求发货顾客购买担保60/天阵发式按条款确认货物并记录顾客修改订单5/天阵发式编辑修改订单并记录供应商发送商品目录5~10/天阵发式登记新的商品目录顾客取消订单1/周阵发式从系统中删除订