辽工大邱云飞老师需求工程复习资料 - 图文 下载本文

前面的面向对象建模方法都是适用于简单情况下的建模方法,在需求信息比较明确时,他们能够发挥很好的作用。但是在复杂情况下,需求的获取和分析是交织前进的,也就是说在进行分析和建模时没有非常明确和固定的需求信息可以利用,此时前面描述的建模方法很难取得好的效果。

基于CRC卡的职责驱动方法是一种用来处理复杂情况的面向对象建模方法,比前面描述的面向对象建模方法复杂很多,需要更多的实践经验和技巧。CRC是Candidates Responsibilities和Callaborators的缩写,基于CRC可以建立一种索引卡片,CRC卡。每个卡片代表了一个被发现的候选对象。卡的背面是关于候选对象的非正式描述,卡的正面记录了对象的职责(所维护状态和可以执行状态的行为)和协作者。CRC卡简洁方便可以随时被移动、修改或者丢弃,所以它特别适合在复杂的系统中充当进行对象的发现和设计思想的挖掘,即进行复杂情况下的面向对象的分析和设计。

概念类分列表 简单方式 案例题

1. 基于以下描述开发一个领域模型。 这个例子是一个简化了的大学图书馆系统。当然,图书馆系统必须跟踪书的情况,同时还要维护关于书的标题及副本的信息。书的标题维护信息是关于名称、作者、出版商和目录号等信息。每个副本维护副本号、版本、印刷日期、ISBN、本书状态和归还日期等信息。

同时图书馆系统也要跟踪图书馆借书人的情况。由于它是一个大学图书馆,所以有几种类型的借书人,他们有各自不同的特权。这里包括教职工借书人、研究生借书人和本科生借书人等。借书人的基本信息包括姓名、地址和电话号码等。对于教职工借书人,还要包括诸如办公室地址和电话等信息。对于研究生借书人,还要包括研究项目和导师信息等。对于本科生借书人,还要包括项目和所有学分信息等。

图书馆系统也要跟踪借出书本信息。当一个借书人捧着一堆书去借书台办理借书手续时,借出这个事件就发生了。随着时间的过去,一个借书人可以多次从图书馆中借书。一次可以借出多本图书。

如果借书人想要的书已被借出,他可以预约。每个预约只针对一个借书人和一个标题。预约日期、优先权和完成日期等信息需要维护。当借书完成,系统会将这本书与借出联系起来。 解答:

1发现对象和类

候选对象 : 人:借书人 教职工借书人、研究生借书人和本科生借书人 图书馆管理员

事物: 书 副本

组织: 图书馆 借书手续 预约手续 概念: 预约日期 标题 借书终端 事件: 借书 预约

摒弃对象: 标题:只有状态没有行为

~ 33 ~

预约日期: 无状态无行为 (黑体为剩下的) 2建立类之间的关联 需要协作的概念类: 借书人 借书终端 图书管理员 借书终端 借书手续 书 预约手续 书

问题域内的联系: 3 添加类的重要属性

2. 结合题1和下面的描述,给出大学图书馆系统的用例模型。 借书人根据图书馆的信息来检索书名,同时检索这本书是否可以被借出。如果一本书的所有副本都被借出了,那么借书人可以根据书名预订这本书。当借书人把书拿到借书台的时候,管理员可以为这些书办理归还手续。管理员要跟踪新书到达的情况。

图书馆的管理者有属于自己的活动。他们要分类打出关于书的标题的表格,还要在线检查所有过期未还的书,也标出来。而且,图书馆系统还可以从另外一个大学的数据库中访问和下载借书人的信息。

解答:借书人根据图书馆的信息来检索书名,同时检索这本书是否可以被借出。如果一本书的所有副本都被借出了,那么借书人可以根据书名预订这本书。当借

~ 34 ~

书人把书拿到借书台的时候,管理员可以为这些书办理归还手续。管理员要跟踪新书到达的情况。

图书馆的管理者有属于自己的活动。他们要分类打出关于书的标题的表格,还要在线检查所有过期未还的书,也标出来。而且,图书馆系统还可以从另外一个大学的数据库中访问和下载借书人的信息 先找用户再找目标。

图书馆用例检索书名预订图书借书人借阅图书图书管理员归还图书列举书单查询未还书访问借书人其他学校下载信息

3. 下面是一段用例的描述,针对一个汽车保险系统中“将一辆新车加入一个已有保单中”的用例。请你为其设计系统顺序图和活动图。

1) 客户打电话给保险公司,并提供他的保单号,办事员输入这个信息,系统显示基本的保单。然后办事员检查信息,以确保保险费通用及保单有效。

2) 客户给出要添加的汽车的牌子、模型、年份和车辆识别代号(VIN),办事员输入这些信息系统验证这些数据是否有效。然后客户选择期望的保额类型,以及每种类型的数量,办事员输入这些信息,系统会逐一记录并根据保单限制验证所请求的数量。输入所有的保额后,系统验证保额总和,包括保单上的其他汽车。

3) 最后,客户必须要确认所有的驾驶员,以及他们驾驶汽车的时间比例。如果有一个新驾驶员加入,则调用另一个用例“增加新驾驶员”。

4) 整个过程最后,系统更新保单,计算新的保险费,打印新的保单说明,邮寄给保单所有人

解答:

几个活动 数据流 参与人角色 甬道

顺序图 活动图

~ 35 ~

系统用 户开始新的销售处理输入客户保单号显示基本保单检查信息 loop [未输入完信息]添加输入汽车信息 验证有效性选择保额类型数量限制请求 记录限制请求 loop [有新的驾驶员]增加新驾驶员反馈信息确认驾驶员 系统更新表单计算保险费用打印保单说明邮寄保单

第四部分 需求的文档化和验证 第15章 需求规格说明

1. 规格说明的读者;目的;要求

项目管理人员:项目估算;任务划分——全面准确的需求 设计、开发人员:完成工作——正确性,可度量 测试人员:测试计划——全面准确正确。 手册编写人员:用户手册的框架 维护人员、培训人员、律师??

2. 规格说明的技巧和原则

~ 36 ~