您好,欢迎访问三七文档
建立系统静态图的过程是对系统领域问题及其解决方案的分析和设计的过程。静态图设计的主要内容是类图的建立。建立类图的步骤:1.研究分析问题领域,确定系统的需求。2.发现类和对象,明确类的属性和操作。3.发现类之间的静态关系,一般与特殊关系,整体和部分关系,类之间的继承性和多重性。4.设计类与关系。5.绘制类图并编制相应的说明。部分文档描述:系统为每个读者建立一个账户,并给读者发放读者证,(可以提供读者证号、读者姓名),账户中存储读者的个人信息、借阅信息以及预订信息等,持有读者证可以借阅图书、返还图书、查询图书信息、预订图书和取消预订。在借阅图书时,需要输入读者所借阅的图书名、ISBN号,然后输入读者的读者证号和姓名,完成后提交所填表格,系统验证读者是否有效。如果读者有效,借阅请求被接受,系统查询读者所借阅的图书是否存在。若存在,则读者可借出图书,系统记录借阅记录,如果读者所借阅的图书已被借出,读者还可预订该图书。读者如期还书后,系统清除借阅记录,否则需缴纳罚金。读者还可以续借图书,系统还包括图书挂失和读者证挂失等功能。同时,以上部分操作还需要系统管理员和图书管理员进行参与。结合以上分析,采用识别类的方法,暂时可以识别出“图书管理系统”中的一些类。实例:图书管理系统1.识别“图书管理系统”中的类(1)寻找名词阅读系统文档和用例(尤其是用例事件流),找出名词或名词短语,注意区别类和属性,筛选后,去除冗余的、与系统无关的、非独立的类。(2)类-职责-协作方法CRC方法,模拟开发人员”处理卡片”的一个过程。开发人员在执行一个处理实例(即一个用例)的同时,将类名赋予的职责和合作者填入卡片,以此来确定类。(3)根据MVC模式寻找根据用例图找出边界类;在用例图中找出控制类;数据库设计完毕后,可以根据数据表获得实体类。(4)有些类无法通过上述方法找到,可能还需要从后面的动态模型(如时序图和协作图)中通过分析对象来确定。主要参与者:系统管理员、图书管理员、读者主要用例:ManageUser(用户管理)、ManageBook(图书管理)、ManageReader(读者管理)、Borrow-Lend(借阅管理)等。1.ManageUser:完成系统用户的增加、删除、修改、查询等功能。2.ManageBook:完成基本信息设置(图书类型设置、借阅种类设置)和图书信息管理(图书信息设置、图书信息查询)功能。3.ManageReader:完成读者办证、读者信息查询、读者证挂失功能。4.Borrow-Lend:完成借书、还书、续借、超期罚款、图书预订、取消预订、图书挂失等功能。序号参与者用例名称用例说明1Administrator(系统管理员)AddUser增加系统用户2DeleteUser删除系统用户3UpdateUser修改系统用户4QueryUser查询系统用户5Librarian(图书管理员)SetBookType进行图书类型设置6SetBrrowType进行借阅种类设置7SetBookInfo进行图书信息设置8SetReaderCard为读者办证9QueryBookInfo根据需要进行图书信息查询10QueryReaderInfo进行读者信息查询11BrrowBook处理读者的借书请求12ReturnBook处理读者的还书请求13RenewBook处理读者的续借图书请求14Fine收取读者的超期罚款15ReserveBook收取读者的图书预订请求16CancleReservation处理读者的取消预订请求17LoseBook处理图书挂失18LoseReaderCard处理读者证挂失图书管理系统的用例19Reader(读者)Login登录系统20ReserveBook申请预订图书21CancleReservation取消图书预订22QueryBookInfo根据需要进行图书信息查询23QueryReaderInfo进行读者信息查询24RenewBook申请续借图书序号参与者用例名称用例说明administratorManageUserManageReaderManageBookLibrarianReaderBorrow-Lend顶层用例图adduserdeleteuserupdateuserqueryuseradministrator系统管理员ManageUser子用例图SetReaderCardLoseReaderCardLibrarianQueryReaderInfo图书管理员ManageReader子用例图FineReserveBookQueryBookInfoRenewBookCancleReservationSetBookInfoSetBorrowTypeSetBookTypeLoseBookReturnBookLibrarianBorrowBookextend图书管理员Borrow-Lend子用例图读者Borrow-Lend子用例图ReserveBookQueryReaderInfoQueryBookInfoRenewBookReaderLoginCancleReservationstudentteacher序号类名称类说明1Admin抽象出来的管理员2Administrator进行系统管理的管理员3Librarian进行读者管理、图书管理、借阅管理的图书管理员4Reader读者基本信息5ReaderType读者类别信息6Book图书基本信息7BookType图书类别信息8Borrow读者借阅图书信息9BorrowType读者借阅类型信息10Store图书在图书馆中的存放位置信息11Reserve读者预订图书信息12Fine读者罚款信息“图书管理系统”中的类系统的用户接口可以作为系统的边界类:(如果采用页面形式表示用户接口,可把页面看成边界类)Login(登录)、Main(主界面)、SystemManage(系统管理)、ReadrManage(读者管理)、BookManage(图书管理)、BorrowManage(借阅管理)、FineManage(罚款管理)等窗体为方便管理,设计2个包,BusinessPackage(业务包)、GUIPackage(图形用户接口包)2.绘制类图BusinessPackage+Admin+Administrator+Book+BookType+Borrow+BorrowType+Fine+Librarian+RaderType+Reader+Reserve+StoreGUIpackage+BookManage+Borrow-Lend+FineManage+Main+ReaderManage+SystemManage+loginloginSystemManageReaderManageBookManageMainFineManageBorrow-Lend1.根据以下描述,给出系统的UML类设计方案。系统名称:农夫果园游戏系统任务角色:农夫(Farmer)、市场调查员(Inquirer)、农场主(Boss)系统实物:各种水果(Fruit)、果园(Garden)功能需求:①农夫可以根据市场行情种植各种水果;②市场调查员可以了解市场行情;③农场主可以向农夫、市场调查员发布命令;④各种果树都具有种植(plant)、成长(grow)、收获(harvest)行为;⑤果园是人物和实物进行交易的场所。2.每个HouseKeeper都有一个Manager负责,有的Manager可能负责多个HouseKeeper,有的Manager可能一个HouseKeeper都没有,下面哪幅图适合描述类HouseKeeper和类Manager的关系?HouseKeeperManager10..n0..n1HouseKeeperManager0..n110..nAB3.为下面这段Java代码补充类图。PublicclassStudent{privateStringname;publicvoidsetName(Stringname){this.name=name;}publicStringgetName{returnthis.name;}}4.根据下面的陈述绘制类图①学生包括本科生、研究生两种。②研究生可以利用课余时间担任助教。③教师包括讲师和教授两种。④一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。5.按如下描述绘制出“飞船系统”的类图。“神舟”六号飞船是“神舟”飞船系列的一种,它由轨道舱、返回舱和逃逸救生塔组成。航天员可以在返回舱内驾驶飞船,轨道舱则是航天员工作和休息的场所。在紧急情况下,可以利用逃逸救生塔逃生。在飞船两侧有多个太阳能电池翼,可以为飞船提供电能。6.按如下描述绘制出“自制机器人系统”的类图这张图的焦点在那些让机器人在路上行走的机制所对应的类上。通过分析可以发现一个虚类Motor和两个由它派生出来的类:SteeringMotor和MainMotor。这两个类都是从父类Motor继承了5个方法:move()、stop()、resetConter()、status()Distance()。这两个类又是另一个类Driver的一部分。类PathAgent和Driver有一个一对一的关系,类PathAgent和CollisionSensor有1对n的关系。
本文标题:类图实例和习题
链接地址:https://www.777doc.com/doc-6014809 .html