




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第15章 图书管理系统,目录,15.1 软件需求分析,15.2 图书馆管理系统的需求分析,15.3 系统中的类,15.4 系统的配置与实现,小结,第15章 图书管理系统,本章以图书管理系统的需求、分析、设计为主线,通过各个阶段的建模来说明UML模型元素的使用方法和建模过程。,151 软件需求分析,软件需求包括功能需求、非功能需求和设计约束三个方面的内容。需求分为三个层次:业务需求、用户需求和系统需求。图15-1描述了这三个需求的关系。,图15-1 三个层次的需求,151 软件需求分析,1. 业务需求 反映组织机构或客户对系统、产品高层次的目标要求。该层次需求是对业务目标的总体抽象和看法。该需求
2、经常由公司总经理提出。 2. 用户需求 为了实现业务目标,要由多个用户或客户相互协作完成,每个用户或客户要完成的任务不同,目标也不同,他们的目标和利益经常是冲突的,因此,描述用户或客户需求非常重要。用户需求就是描述用户必须要完成什么任务,怎么完成,通常是在问题定义的基础上进用户访谈、调查,对用户使用的场景进行整理,从而建立从用户角度的需求。 3. 系统需求 系统需求就是从计算机系统的角度来说明软件的需求,它包括了用特性说明的功能需求,质量属性以及其它非功能需求,还有设计约束.,151 软件需求分析,1511 需求捕获 在软件开发活动中,需求捕获工作往往效果不佳。而真正有效的需求捕获过程应该是更
3、系统化、更有针对性的有序活动。具体来说,应该包含“明确业务目标”、“理解业务流程”、“明确用户需求”三个主要的步骤。 1.明确业务目标 业务目标就是从高层次看待整个系统,也就是“业务系统的目标”。它是整个需求过程乃至整个开发过程中最本质、最重要的问题。通常来说,业务需求是构建在“项目发起人”的脑子里的,也就是谁提出项目,谁就拥有对“业务目标”的最清晰的理解。 通常来说,“业务目标”可以分为“产品/项目目标”和“子目标描述”两个方面的内容。“产品/项目目标”是最有宏观层面的描述,而“子目标描述”就是为了完成“产品/项目目标”的更详细的步骤。对于一个产品/项目的目标而言,主要包括三个方面:要做什么
4、、提供什么业务优势和如何衡量这些优势,另外要注意,业务需求必须合理、可行、可实现。 2.理解业务流程,151 软件需求分析,业务流程就是为了实现业务目标要完成的活动。这个部分的工作如何进行取决于项目的规模、团队的特点等诸多方面的因素。但综合而言,可以遵从以下指导思想: (1).如果项目较大或者业务较陌生,应该进行业务建模。 (2).如果业务较陌生,应该聘请领域专家,并对项目组队进行领域培训。 (3).如果术语较多,易于混淆,应该构建业务术语表,也就是在需求捕获的过程中,将遇到的业务术语收集下来,使用数据词典方法构建一个共享的名词解释库,以帮助项目团队达成共识。 (4).无论如何,都应该建立跨部
5、门职能流程图。,151 软件需求分析,3.明确用户需求 当我们知道了项目目标,了解了业务流程之后,接下来的工作就是要进行更细化、深入的需求调查了。要做好需求调查,必须清楚地了解三个问题: (1).What(收集什么信息):分析和研究现有业务流程图,看看是否已经对每个环节、步骤都清楚地理解了。我们应该根据自己的理解首先对每个流程的工作进行定义,写出事件流,并且标识出疑问点,这些都将使我们明白“应该收集什么信息”。 (2).Where(从哪里收集):通常情况下,我们需要的信息都会藏于客户、原有系统、原有系统用户、新系统的潜在用户、原有产品、竞争对手的产品领域专家、技术法规与标准里。具体应该从哪里收
6、集,应该从流程图上找到相应的岗位或部门,从这些岗位或部门收集信息。 (3).How(如何收集):应该根据不同的需要,采用不同的需求捕获技术。表15-1就对各种主要的需求捕获技术的优缺点做了一个总结。,151 软件需求分析,表15-1 需求捕获技术比较,151 软件需求分析,1512 软件需求工程 获取需求后,必须对需求进行开发和管理。需求的管理也就是对整个需求工程进行有效的计划、控制的过程,因此要想有效地进行管理,就必须知道需求工程包括哪些内容。简单地说,需求工程就是包括创建和维护系统需求文档所必需的一切活动的过程,也就是通常有需求开发和需求管理两大工作。这两方面是相辅相成的,需求开发是主线,
7、是目标;需求管理是支持,是保障。换句话说,需求开发是更清晰、明确地获取用户和客户对系统的需求,而需求管理则是对需求的变化进行管理的过程。,151 软件需求分析,1.需求开发 在需求开发中,主要包括需求捕获、需求分析、编写规格说明书和需求验证4项活动,它们也是一个迭代的过程:有计划地进行需求的捕获工作;然后将捕获到的零散信息进行综合的分析与研究,并利用软件建模技术构建系统蓝图;然后用合适的形式(根据项目的规模,可以是很正式的文档,也可以是比较简单的文档;可以是正式提交的文件,也可以是一个Web模型)将需求规格化;最后与客户一起进行验证。这样的循环并不是一次性完成的,而是要多次迭代地进行这些活动。
8、 但这种迭代也不应该是盲目的,整个过程应该是先建框架,再填血肉;先宏观,后细节的有序过程。换句话说,应该尽早把握最为本质的需求。如何判断需求是不是最为本质呢?这一切又要回到“业务目标”上来,客户希望通过系统来解决什么问题。这部分需求与解决这个问题而言,其关键性有多高。,151 软件需求分析,2.需求管理 需求管理主要的活动包括需求的基线管理、需求变更管理、需求跟踪三方面的工作。这一块在实际的项目中大多显得更加薄弱,甚至是呈现“真空状态”。 (1).需求的基线管理 有过开发经验的人都会知道频繁的需求变更会破坏开发的节奏,使整个项目开发的进度陷入混乱和失控的状态,而且会变成一个“救火队”式的工作,
9、整天都在处理突发事件。而基线管理的核心思想就是,将所有现在的、将来的需求进行优先级评估,然后分解成为不同的组,每次迭代都选择其中优先级最高的部分进行开发,在迭代完成之前,开发工作不响应变更,这些需求项就是需求基线的组成部分。,151 软件需求分析,(2).需求变更管理 属于基线部分的需求项不响应变更;通过变更管理了解需求变更的关键意图、新产生的工作量,从而很好地进行重新计划,以便能够有效地解决其对整个开发带来的麻烦。 (3).需求跟踪 需求跟踪是指对需求的完成情况、变更影响进行系统化的跟踪与处理。也就是解决以下问题:需求是不是已经被实现、需求的变化将导致修改哪些设计元素、会影响谁的工作、对已经
10、完成的部分是否有影响等。,15.2 图书馆管理系统的需求分析,15.2.1 标识参与者 首先,需要标识业务参与者。参与者是在业务中扮演某个角色的人、部门或者独立的软件系统。一般来说,参与者使用系统或给系统提供服务。 图书管理系统的参与者: 借阅者:可以通过网络查询书籍信息和预定书籍,借阅者能够借阅书籍和还书。 图书管理员:能够处理借阅者的借阅和还书请求。 系统管理员:可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借阅者帐户,增加和删除书籍。,15.2 图书馆管理系统的需求分析,15.2.2 标识用例 有了参与者后,下一个任务就是标识业务用例。每个用例都是业务系统的一部分。
11、如何把业务分解为用例没有普遍的规则可遵循,一般说来,常识、逻辑和经验对此有一定的帮助。和客户一起工作,对于识别参与者有帮助。例如,在与销售层的助手谈话时,才能知道他们每天都要完成不同的任务,因为助手要与顾客打交道,他们还应能给出顾客使用业务的方式。员工和管理层培训手册、任务陈述、专用需求文档、销售册子和其他文档也可以提供灵感。 可以向每个参与者提出以下问题:“你完成你的业务的重要活动是什么?”,把所有参与者回答的问题,要完成的活动或任务整理成用例。 1. 借阅者请求服务的用例图 借阅者请求服务时,涉及7个用例,如图15-2所示。 【用例图说明】,图15-2借阅者请求服务的用例图,15.2 图书
12、馆管理系统的需求分析,(1)Serch for Book:书籍查询用例。 (2)Reserve the book:书籍预订用例。 (3)Logon the system:登录系统。用户可以登录系统以便进行借阅信息查询以及预订书籍等操作。 (4)Query Info:查询借阅信息。 (5)Borrow the book:借阅书籍。 (6)Return the book:归还书籍。 (7)Return With Fine:还书时交纳罚金。如果借阅者所借书籍超过借阅期限未还,还书的时候就要交纳一定的罚金。,15.2 图书馆管理系统的需求分析,2. 图书馆管理员处理借书、还书等的用例图 图书馆管理员处
13、理借书、还书等涉及5个用例,如图15-3所示。,图15-3图书馆管理员处理借书、还书等的用例图,15.2 图书馆管理系统的需求分析,【用例图说明】 (1)Get book:书籍归还处理。 (2)Lend book:书籍借阅处理。 (3)Remove Reservation:删除书籍预订信息。 (4)Get With Fine:还书时收取罚金。 (5)Check user count:检查用户借阅凭证的合法性。图书管理员在借阅者借书的时候要检查用户借阅凭证的合法性。,15.2 图书馆管理系统的需求分析,3. 系统管理员进行系统维护的用例图 系统管理员维护系统时涉及到8个用例,如图15-4所示。,
14、图15-4系统管理员进行系统维护的用例图,15.2 图书馆管理系统的需求分析,【用例图说明】 (1)Query Borrower Info:查询读者信息。 (2)Query Book Info:查询书籍信息。 (3)Add Title:增加书目。 (4)Remove or Update Title:删除或更新书目。 (5)Add Book:增加书籍。 (6)Remove Book:删除书籍。 (7)Add Borrower:添加借阅者账户。 (8)Remove or Update Borrower:删除或更新借阅者账户信息。,15.2 图书馆管理系统的需求分析,15.2.3 实现用例的时序图
15、1. 系统管理员添加书籍的时序图 【时序图说明】 (1)add Item():添加书籍函数。 (2)find(String):根据书籍查找相应书目的函数。,图15-5 系统管理员添加书籍的时序图,15.2 图书馆管理系统的需求分析,(3)create(integer,Title):修改书籍数目的函数。 添加书籍时,系统管理员首先与系统的维护窗口交互,查找有没有相应的书目信息。如果有,直接添加,如果没有,要创建新的书目。 2. 系统管理员添加借阅者帐户的时序图,图15-6系统管理员添加借阅者帐户的时序图,【时序图说明】 Create(String,String):添加新的借阅者账户的函数。 系统
16、管理员要添加新的借阅者账户,首先要与维护窗口交互,维护窗口负责创建一个新的借阅者账户。,15.2 图书馆管理系统的需求分析,3. 系统管理员删除书目的时序图 【时序图说明】 (1)find(String):书目类的查找函数。,图15-7系统管理员删除书目的时序图,(2)find_on_title(Title):查找此书目下书籍信息的函数。 (3)destroy:删除书籍信息的函数。 (4)destroy:删除书目信息的函数。 系统管理员与系统的维护窗口交互,查找到相应的书目及书籍信息并删除掉。,15.2 图书馆管理系统的需求分析,4. 图书管理员处理书籍借阅的时序图,【时序图说明】 (1)fi
17、nd(String):查找书目的函数。 (2)find_item():查找所要书籍的函数。 (3)find_on_title(Title):根据书目名从数据库中找到书目信息的函数。 (4)identify_borrower():验证借阅者身份的函数。 (5)find(String):根据借阅者的登录账号找到借阅者信息的函数。 (6)create(Borrower,item):修改借阅信息的函数。,图15-8图书管理员处理书籍借阅的时序图,15.2 图书馆管理系统的需求分析,图书管理员首先与系统的借阅窗口交互,然后借阅窗口与书目和书籍信息交互,查看要借阅的书籍是否可用。如果可用,要验证借阅者借书
18、凭证的有效性,如果有效,则将新的借阅信息存入数据库。 5. 图书管理员处理书籍归还的时序图,图15-9图书管理员处理书籍归还的时序图,【时序图说明】 (1)check():检查书籍状况的函数。 (2)update():更新书籍类信息的函数。 (3)update():更新借阅者借阅信息的函数。 图书管理员处理还书时,首先从借阅者手里接过书籍,然后与还书窗口交互,还书窗口负责检查书籍状况,然后更新书籍信息和读者的借阅信息。,15.2 图书馆管理系统的需求分析,6. 借阅者查询书籍信息的时序图,图15-10借阅者查询书籍信息的时序图,【时序图说明】 Fine_on_title():根据书目查找到相应
19、的书籍信息。,15.2 图书馆管理系统的需求分析,7. 借阅者预订书籍的时序图,图15-11借阅者预订书籍的时序图,【时序图说明】 (1)Login:登录系统的函数。 (2)Find(String):查找相应的书目的函数。 (3)Reserve():预订书籍的函数。 借阅者首先与系统的网络模块交互,如果找到要预订的书籍,就将预订的信息添加进去。,15.2 图书馆管理系统的需求分析,15.2.4 实现用例的协作图 1. 系统管理员添加书籍的协作图 图15-12系统管理员添加书籍的协作图,【协作图说明】 (1)add Item():添加书籍的函数。 (2)find(String):根据书籍名查找相
20、应书目的函数。 (3)update():修改某类书目下书籍数量的函数。,15.2 图书馆管理系统的需求分析,2. 系统管理员删除书籍的协作图 【协作图说明】 (1)remove_item():删除书籍的函数。 (2)find(String):根据书籍名查找相应书目的函数。 (2)update():修改某类书目下书籍数量的函数。,图15-13系统管理员删除书籍的协作图,15.2 图书馆管理系统的需求分析,3. 图书管理员处理借书的协作图,图15-14图书管理员处理借书的协作图,【协作图说明】 identify_borrower():验证借阅者身份的函数。 find_reservation():查
21、找预订信息的函数。 find(Borrower,Title):根据借阅者和借阅的书籍名找到相应预订信息的函数。 borrow():处理借书的函数。 update():更新某一书目下书籍数量的函数。 check_if_max():检查借阅凭证所借书籍数目是否已经超过最大限额的函数。,15.2 图书馆管理系统的需求分析,4. 图书管理员处理还书的协作图,图15-15图书管理员处理还书的协作图,【协作图说明】 find_borrower():查找借阅者信息的函数。 find(String):根据借阅者查找借阅信息的函数。 return_back():处理还书的函数。 update():更新书籍数目函
22、数。,15.2 图书馆管理系统的需求分析,5. 借阅者预订书籍的协作图,图15-16借阅者预订书籍的协作图,【协作图说明】 identify_borrower():验证借阅者身份的函数。 find(String):根据书籍名称查找书目信息的函数。 reserve():预订某一书目下的书籍的函数。 create(Title,Borrower):修改预订信息的函数。,15.2 图书馆管理系统的需求分析,15.2.5 对象的状态图 1. 书的状态图 【状态图说明】 New book:还未入库的新书。 Delete:已经从书库里删除的书。 Available:书籍处于可用状态,即可以外借的状态。 Re
23、served:预订状态。 Borrowed:借出状态。,图15-17书的状态图,书籍处于可用(Available)状态时既可以预订也可以外借,外借后变为借阅(Borrower)状态。处于预订(Reserved)状态时可以外借,超出预订时间期限则从预订状态直接转为可用状态。借阅者在规定的预订时间内也可以考虑取消预订,取消预订后书籍的状态转为可用。外借书籍归还后变为可用状态。,15.2 图书馆管理系统的需求分析,2. 借阅者帐户的状态图,【状态图说明】 New Borrower:新加入的借阅者的账户。 Account Available:借阅账户为可用状态,即未达到所规定的书籍借阅数目上限。 Ac
24、count Unavailable:借阅账户为不可用状态,即所借的书籍数已达到规定的书籍借阅数目上限,不能再借阅书籍了。 Delete Account:个人账户被删除状态。 借阅者的账户刚被管理员加入时处于新帐户(New Borrower)状态,当管理员添加借阅权限后就变为可用(Account Available)状态,当所借书籍数已达到规定的书籍借阅数目上限时,变为不可用状态(Account Unavailable)状态,当账户被系统管理员删除后,变为删除(Delete)状态。,图15-18借阅者帐户的状态图,15.2 图书馆管理系统的需求分析,参与者的活动图 1. 借阅者的活动图,图15-
25、19借阅者的活动图,【活动图说明】 (1) Self-help Service: 打开图书馆负责自助服务的计算机。 (2) Search for books: 查询需要的书籍。 (3) Login:登录管理系统。 (4) View book information: 查看书籍信息。 (5) Reserve the book: 预订书籍。 (6) Exit System: 退出系统。 (7) Leave Computer: 离开自助服务的计算机。,15.2 图书馆管理系统的需求分析,借阅者进行自助服务时,可以首先登录系统,然后进行书目查询、书籍信息查询、书籍预订等活动,也可以先查询书目和书籍信息
26、后登录系统预订书籍。 2. 图书管理员的活动图,图15-20图书管理员的活动图,15.2 图书馆管理系统的需求分析,【活动图说明】 Login the system: 图书管理员登录系统。 Get book: 处理还书操作。 Lend book: 处理借书操作、 Update borrowers information: 更新借阅者借阅凭证上的信息。 Accept money: 收取罚金。 图书管理员可以处理两种情况,借书操作和还书操作。当用户借书时,图书管理员要查看借阅者凭证上显示的可借书的数目是否满足要求;当用户还书时,图书管理员要查阅所借书籍是否已经超过期限,如果超期,要收取一定的罚金。
27、 系统管理员登录系统后,可以进行查阅书目信息、添加书目、删除或更新书目等活动。,15.2 图书馆管理系统的需求分析,3. 系统管理员的活动图 系统管理员维护借阅者帐户的活动图 系统管理员进行书目信息维护的活动图 系统管理员维护书籍信息的活动图 系统管理员登录系统后,可以进行添加书籍、删除书籍等活动。,图15-21系统管理员维护借阅者帐户的活动图,图15-22系统管理员进行书目信息维护的活动图,图15-23系统管理员维护书籍信息的活动图,15.2 图书馆管理系统的需求分析,【活动图说明】 Login the system: 登录系统。 Operation on borrower: 对借阅者账户操
28、作。 Operation on title: 对书目进行操作。 Operation on book: 对书籍进行操作。 Query borrower info: 查询借阅者信息。 New borrower: 添加新的借阅者账户。 Remove or Update borrower: 删除或更新借阅者账户。 Query title: 查询书目信息。 New title: 增加新的书目。 Remove or update title: 删除或更新书目。 Add book: 增加书籍信息。 Remove book: 删除书籍信息。 Exit the system: 退出系统。,15.3 系统中的类,
29、15.3.1 系统中主要的类 1参与者相关的类 参与者相关的类,如图15-24所示。 【类图说明】 Borrower 类是借阅者的类,它的属性很多,包括借阅者的账户ID(UserID)、姓名(Name)、地址(Address)、邮编(Zip)、所借书籍的书目(borrow_number)等.其中主要操作有借书(borrow)和还书(return_back)。 Librarian类是图书管理员的类,包括工作帐号(WorkID)、名字(Name)和地址(Address)等属性。 Administrator 类是系统管理员类。,图15-24参与者相关的类,15.3 系统中的类,图15-25 系统中其它的类,15.3 系统中的类,系统中用到的其他类 【类图说明】 Title类是记录书目信息的类,包括书籍的名字(name)、作者(author)、ISBN、此种书籍总数量(total_n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度LNG液化天然气运输合同范本
- 二零二五年度拆除工程拆除与环保拆除承包合同
- 二零二五版常年法律顾问知识产权保护服务合同
- 二零二五年快递物流运输承包服务协议
- 2025年度网络安全保密合作协议书
- 二零二五年度:环保产业合作补充协议绿色发展权益共享
- 二零二五年度常年法律顾问合同(公司治理与合规专版)
- 2025版建筑工程合同质量监督与验收规范
- 2025版标准房产抵押贷款保证合同范本
- 二零二五年度车辆贷款还款计划变更合同
- 腐创院连云路实验基地电力增容项目询价文件
- 全国高校辅导员职业能力大赛基础知识测试题题库(60问)
- ICU后综合症护理
- 24版安全生产标准化(专业管理)通风专业
- 2024用电信息采集系统技术规范1-3部分
- 渗滤液处理应急预案
- 全册背记资料-2024-2025学年七年级地理上学期湘教版
- 《水工建筑物》课件-模块四:土石坝
- 贵阳市云岩区2023-2024学年重点中学小升初数学入学考试卷含解析
- 纱线测试与质量控制技术
- (完整版)小学六年级奥数应用题100道附答案
评论
0/150
提交评论