12-图书管理系统-静态结构设计-系统包和类_第1页
12-图书管理系统-静态结构设计-系统包和类_第2页
12-图书管理系统-静态结构设计-系统包和类_第3页
12-图书管理系统-静态结构设计-系统包和类_第4页
12-图书管理系统-静态结构设计-系统包和类_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程与UML林琳Beyond Technology图书管理系统第11周第2次课今天的工作任务图书管理系统的静态结构设计体系结构与模式。提交内容图书管理系统系统类图。我们的进度,在这里工作任务:图书管理系统的静态结构设计我们的进度,在这里提交内容:系统类图完成实验5学习情景图书管理系统体系结构设计知识要点一览面向对象设计OOD设计原那么MVC设计模式DAO模式类图建模技术系统类图我们的进度,在这里知识要点1:面向对象设计静态结构设计类设计包设计接口设计动态结构设计行为和交互建模对象如何进行交互的关注我们的进度,在这里还记得“春晓吧?设计1设计2设计3设计4设计5同样的需求,可以采取不同的设计

2、方式来完成。设计的好坏会影响系统的可重用性、可维护性和可扩展性。我们的进度,在这里知识要点2:设计原那么知识要点2:设计原那么“开闭原那么里氏代换原那么合成复用原那么接口隔离原那么依赖倒转原那么迪米特法那么 课外阅读:?Java与模式?抽象,信息隐蔽,模块独立,高内聚,低耦合我们的进度,在这里理论在实际中的运用设计模式设计模式就是实现了这些原那么,从而到达了代码复用、增加可维护性的目的。 提高代码复用提高可维护性按照良好的设计原那么进行设计?使用设计模式我们的进度,在这里知识要点3:MVC设计模式先看一以下图书管理系统的登陆登陆的状态图我们的进度,在这里验证通过验证未通过一种设计:将用户名和密

3、码的验证,放在登录界面的“进入系统按钮中进行。我们的进度,在这里第一种设计存在的问题:问题1:扩展性差。目前这个系统只有一个图书馆工作人员使用,因此用户名和密码都是admin,这样验证可行,但是如果以后维护期间,需要增加工作人员或者增加学生、教师等使用角色,系统的扩展性就受到了限制。问题2:重用性不好。并且不同的角色需要写入不同的验证过程,不能重用。问题3:界面人员还要考虑算法和逻辑。使界面变得不单一。如何解决?我们的进度,在这里另一种设计:新增加一个类UserLoginProcess,该类中有一个方法public boolean login_check(String uname,String

4、 upsw),此方法用来进行验证,如果验证通过那么返回true给登录界面,否那么返回false。我们的进度,在这里用户验证处理类登录界面中,对用户验证处理类的使用第2种设计给我们带来什么好处?1.良好的封装,将界面和验证逻辑分开,系统结构更清晰。界面人员不用管验证的细节,只需要判断返回值是true还是false即可作出相应的显示操作。2. UserLoginProcess类还可以提供其他验证操作,包括链接数据库的操作,为系统扩展性提供了接口。3. UserLoginProcess类中的验证过程可以被重用,即使你再增加假设干个不同角色的登录界面,一样可以使用这个类的方法来进行验证,重用性提高。第

5、2种设计使用了MVC思想我们的进度,在这里MVC,将界面、处理、数据源分开MVC是Model,View,Controller的缩写。MVC是Application开发的设计模式,也就是大家所知道的Model2.在MVC的设计模式中,它包括三类对象:1模型Model对象:是应用程序的主体局部。2视图View对象:是应用程序中负责生成用户界面的局部。3控制器Control对象:是根据用户的输入,控制用户界面数据显示及更新Model对象状态的局部。即要求在Application开发中你把商业逻辑,界面显示,数据别离。 我们的进度,在这里MVC结构图状态查询通知改变视图选择用户请求状态改变我们的进度,

6、在这里图书馆系统的MVC结构用户图形界面类数据源业务逻辑和处理类CVM我们的进度,在这里MVC让图书馆系统的结构变得清晰起来。但与此同时,我们发现,在图书管理系统的用例中, 有很多都是需要通过访问数据库来进行实现的。如果用户不使用原有的数据库了,使用新的数据库时,程序代码要改动的地方就太多了。怎么办?有没有什么好的设计模式可以让数据库访问变的可重用,可维护,可扩展呢?使用DAO模式吧!?新的问题我们的进度,在这里知识要点4:DAO设计模式DAO是Data Access Object的缩写。数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。业务逻辑程序数据库DAO我们的进度,在

7、这里DAO模式我们的进度,在这里DAO模式我们的进度,在这里1. 封装Data Source数据源例如:Connection conn = DriverMananger.getConnection()就可以把Driver,URL,username,passpword这一些放在DAO中。如果在维护中,需要更改数据库的类型,例如把MSSQL换成Oracle的话,只需要更改DAO里面的getConnection()里面的Driver,URL即可。2. 封装对数据库的操作(例如最根本的增、删、改、查操作)例如:要插入一个新的用户,那么在DAO中我们只需要提供一个insertUser(User user

8、)这一个方法就可以了。具体的操作是在DAO中实现的。在业务逻辑程序中调用DAO的时候.我们只要知道insertUser(User)是用来插入一个新的用户,而不需要知道是如何实现的。 DAO的功能:我们的进度,在这里完成工作任务图书管理系统的体系结构设计包设计我们的进度,在这里包中存放界面类我们的进度,在这里包中存放业务逻辑处理我们的进度,在这里包中存放数据访问包我们的进度,在这里类设计主要是DAO实现类设计包包我们的进度,在这里此类映射图书表我们的进度,在这里此类映射借阅信息表我们的进度,在这里此类映射学生表我们的进度,在这里此类映射借阅视图我们的进度,在这里包我们的进度,在这里此包提供了对数

9、据源的访问操作,各类的方法是根据需求规格说明书进行识别出来的,保证能够覆盖需求中提到的对数据库访问的操作。注意类的设计相比照较复杂,对大家的要求是要能看懂设计图,理解设计原那么。在进行编码时,能够按照所给的类图实现编码。我们的进度,在这里6.3.1 包的名字和其他建模的元素一样,每个包都必须有一个区别于其他包的名字。模型包的名字是一个字符串,它可分为简单名simple name和路径名path name。简单名是指包仅含一个简单的名称,路径名是指以包位于的外围包的名字作为前缀的包名。如以下图所示我们的进度,在这里6.3.2 包拥有的元素包是对模型元素进行分组的机制,它把模型元素划分成假设干个子

10、集。包可以拥有UML中的其他元素,包括类、接口、组件、节点、协作、用例和图,包甚至还可以包含其他包。如下图,可以用文字或者图形的方式来显示包的内容。我们的进度,在这里6.3.3 包的可见性 包的可见性用来控制包外界的元素对包内元素的可访问权限,这一点和类的可见性类似。可见性可以分成3种。 1公有访问public:包内的模型元素可以被任何引入此包的其他包的内含元素访问。公有访问用前缀于内含元素名字的加号+表示。2保护访问protected:表示此元素能被该模型包在继承关系上后继模式包的内含元素访问。保护访问用前缀于内含元素名字的号表示。3私有访问private:表示此元素可以被属于用一包的内含元

11、素访问。私有访问用前缀于内含元素名字的减号表示。我们的进度,在这里6.3.4 引入与输出 在UML里,引入一个包中的元素可以单向的访问另一个包中的元素。引入import关系用构造型的import来修饰。包中具有公有访问权限的内含元素称为输出export。如下图,包GUI有两个公共类Window和Form,类EvenHandler是受保护的,不能被包输出。我们的进度,在这里6.3.5 包中的泛化关系和类间的泛化关系类似,包间也存在着泛化关系。包间的泛化关系也像类那样遵循替代原那么,特殊包可以应用到一般包被使用的任何地方。包间还存在另一种关系:引入和访问依赖,用于在一个包引入另一个包输出的元素。如

12、下图,包GUI包含两个公共类Window和Frame,一个受保护类EvenHandler我们的进度,在这里6.3.7 包图建模技术当为较复杂的系统建模时,使用包是非常有效的建模方法。包将建模元素按语义分组,从而使得复杂的系统模型能够被构造、表达、理解和管理。建立包图的具体做法如下。1分析系统模型元素通常是对象类,把概念上或语义上相近的模型元素纳入一个包。2对于每一个包,标出其模型元素的可视性公共、保护或私用。3确定包与包之间的依赖关系,特别是输入依赖。4确定包与包之间的泛化关系,确定包元素的多重性与重载。5绘制包图。6包图精化。我们的进度,在这里类图工具箱我们的进度,在这里类标准General

13、标签 名称Name) 构造型Stereotype) 输出控制Export Control) 选项含义Public系统中所有其它类都能访问这个类Protected这个类可以在嵌套类、友元或同一个类中访问Private这个类可以在友元或同一个类中访问Implementation这个类只能由同一包中的其它类访问我们的进度,在这里类标准Detail标签多重性Multiplicity) 存储需求Space) 并发性Concurrency) 类型描述Sequential默认设置。当只有一个控制线程时,类能正常工作;有多个控制线程时,不能保证类能否正常工作Guarded存在多个控制线程时,类正常工作但不同种

14、的类应相互协作,保证不会互相干扰Active类有自己的控制线程Synchronous存在多个控制线程时,类的正常工作不需要与其他类相互协作,类本身能处理互斥情形我们的进度,在这里类标准Attributes标签 Operation标签 Relations标签 Nested标签创立嵌套类 右单击标签中任一空白处,从快捷菜单中选择Insert,输入嵌套类名称;按一般方法创立父类和嵌套类:在浏览器中,将嵌套类拖放到父类。我们的进度,在这里类标准Components标签显示用于实现系统中类的构件 复选标记框“Show all components表示是否要显示模型中的所有构件;如果选中该标记,那么显示系

15、统中的所有构件;否那么,只显示实现所选类的构件 显示构件时,同时还显示构件所属的包,以及实现所采用的编程语言 我们的进度,在这里属性标准General标签属性数据类型Type) 属性构造型Stereotype) 属性的初值Initial) 输出控制Export Control) 选项含义Public公共属性。任何其它类都可以浏览或修改属性的之值Protected保护属性。类及其派生类可以访问该属性Private专用属性。其他类不能访问该属性Implemented实现属性。只能被同一包中的类访问可见性Rose图注UML图注Public+ProtectedPrivate-Implemented我们

16、的进度,在这里Detail标签属性控制Containment)By value:按数值 By reference:按引用Unspecified:未指定静态属性Static) 派生属性Derived) 属性标准 我们的进度,在这里操作标准General标签返回值的类型Return)构造型Stereotype) 输出控制Export Control) 可见性含义Pulic操作可以被其它类访问。Protected操作可以被子类、友元类或本身访问Private操作可以被友元类或本身访问Implemented操作是公开的,但只被同一包中的类访问我们的进度,在这里操作标准Detail标签 操作变元argu

17、ment) 操作协议Protocol) 操作限制Qualification) 内存长度Size) 时间Time) 并发性Concurrency) Sequential:只有一个控制线程时,操作正常工作。 Guarded:存在多个控制线程时,不同线程的类相互协作,操作可正常工作。 Synchronous:存在多个控制线程时,操作可正常工作。我们的进度,在这里操作标准异常Exceptions)标签 操作可抛出的异常通过其中的4个按钮添加、删除和上、下移动异常 我们的进度,在这里前置条件Preconditions)标签 前置条件Preconditions) 指定操作运行之前应满足的条件,即操作的入口

18、行为,通常是不等式 交互图Interaction Diagram)说明操作语义的交互图 操作标准我们的进度,在这里语义Semantics)标签 语义Semantics) 指定操作的工作在文本框中用伪代码描述操作逻辑 交互图Interaction Diagram) 说明了操作语义的交互图 操作标准我们的进度,在这里后置条件Postconditions)标签后置条件Postconditions) 指定操作运行之后要符合的条件,即操作的出口行为交互图Interaction Diagram) 说明操作语义的交互图 操作标准我们的进度,在这里General标签关系名Name) 一个动词或动词短语,描述关

19、系的作用,是可选的关系名在关系线上斜体显示关联标准我们的进度,在这里General标签角色Role) 描述类在关系中的作用通常是名词或名词短语,显示在起这个作用的类旁边关联两端的对象,箭头指向的称为“Role A,箭尾称为“Role B 关联标准我们的进度,在这里关联标准Detail标签链接元素Link Element) 链接元素也称为关联类,可以放置与关联相关的属性 使用限制Constraints) 限制是必须符合的条件。在Rose中可以设置关系的限制条件输入的限制条件在生成代码时成为说明语句 我们的进度,在这里关联标准Role A General和Role B General 标签Rose

20、在生成代码时要给关联建立一个属性Export Control字段设置该属性的可见性 可见性含义Public公共属性。任何其它类都可以访问或修改属性的之值Protected保护属性。类及其派生类可以访问该属性Private专用属性。其他类不能访问该属性Implemented实现属性。只能被同一包中的类访问我们的进度,在这里关联标准Role A Detail和Role B Detail标签多重性Multiplicity) 表示关联中一个类的几个实例与另一个类的一个实例相联系包容Containment) 设置关联属性是按值还是按引用包容 Static类所有的实例共享的属性 Friend 表示客户类能

21、访问提供者类的非公共属性和操作 选项含义By value按数值。属性放在类中By reference按引用。属性放在类外,类指向这个属性Unspecified未指定。还没有指定控制类型我们的进度,在这里关联标准Key/Qualifier标准定义即限定词。在一对多的关联中,索引范围很广,使用限定符可以缩小关联的范围 按下面的步骤可以翻开Key/Qualifier标准窗口:双击关联,翻开关联标准窗口; 单击“Role A Detail标签; 双击Key/Qualifier字段列表中的限定词。 我们的进度,在这里Key/Qualifier标准定义限定词右单击关联标准窗口Key/Qualifier字段

22、列表,从快捷菜单中选择Insert,直接在列表中输入限定词和类型 删除限定词 右单击关联标准窗口Key/Qualifier字段列表,从快捷菜单中选择Delete 修改限定词 单击关联标准窗口Key/Qualifier字段列表,直接在列表中编辑限定词和类型。关联标准我们的进度,在这里关联的操作 增加关联 改变关系的导航在要移动的关系端单击右键,在快捷菜单中选择Navigable 删除关联 关联标准我们的进度,在这里公司文件:关于成立技术部的通知 为了提高各工程组的开发效率,保证按进度方案完成工程,提高本公司代码的可重用性和可扩展性。本公司预计在12月1日之前成立代码部。 该部门主要负责核心组件代

23、码的编写,包括实现图书管理系统包中的类和实现包中的类。为其他工程组提供访问数据库数据组件的支持。 考虑到该部门工作意义重大,因此该部门薪水比一般工程组高出5%,有意向的员工可在2021年12月1日之前发邮件给总经理报名。完成实验5:系统静态结构建模系统类图 我们的进度,在这里实验报告书写注意:姓名xx学号xxxxxxxx年级08实验日期09.11.28/09.11.29实验地点A5104/A5203专业日语强化/日语强化任课教师林琳实验教师林琳班级X实验:五 注意:实验报告每个同学都要完成,当节课做,下课时课代表收上来交给老师电子版程序也由课代表收齐后发给老师我们的进度,在这里实验报告书写注意

24、:实验名称:系统静态结构建模系统类图实验目的、要求 掌握类的协同建模技术通过使用Rose工具,绘制类图。实验设备 学生自己的笔记本实验内容、步骤 内容: 1对图书馆管理系统进行模拟访谈,了解借书和还书的业务流程。2使用Rational Rose完成图书馆管理系统的类图模型。我们的进度,在这里实验报告书写注意:实验内容、步骤 内容: 1对图书馆管理系统中,对需求规格说明书进行分析。2按照MVC和DAO模式进行系统设计。并使用Rational Rose完成图书馆管理系统中,系统包图和类图。我们的进度,在这里实验报告书写注意:步骤: 翻开rose工具,新建一个模型,命名为:学号姓名-实验6,如:73

25、17110101兰维海实验5完成图书馆管理系统类图的设计:单击浏览器中的Logical View。在弹出菜单中选择【NewClass Diagram】,输入框图的名称:实验5,按照所给的例如,将元素拖放到设计窗口中。完成设计之后。点击【save】保存设计图。 在发放的实验报告纸上写实验报告,提交电子版设计图给课代表。我们的进度,在这里实验5:系统包图我们的进度,在这里实验5:ui包的Main类图我们的进度,在这里包实验5:factory包的Main类图我们的进度,在这里课程小结本次课中,用到以下知识:面向对象设计OOD。MVC设计模式DAO设计模式系统类图rose绘制类图我们的进度,在这里PP

26、T全名:PowerPoint是美国微软公司出品的办公软件系列重要组件之一另外还有Excel、Word等;最常用的就是用来制作幻灯片。MicrosoftOfficePowerPoint是一种演示文稿图形程序,该软件是功能强大的演示文稿制作软件;可协助用户单独或联机创立永恒的视觉效果;它增强了多媒体支持功能,利用该软件制作的文稿,可以通过不同的方式播放,也可将演示文稿打印成一页一页的幻灯片,使用幻灯片机或投影仪播放,可以将演示文稿保存到光盘中以进行分发,并可在幻灯片放映过程中播放音频流或视工程列表; 新增工程; 修改工程; 删除工程; 工程授权; 工程任务统计; 工程资源管理; 工程进度管理; 工

27、程任务包管理; 工程文档管理; 工程费用管理; 工程归档; 工程查询; 当前任务; 工程统计分析。4. 库存管理掌握库存的动态流动状况,减少库存资金的占用,加强资金的合理使用。选择“库存管理模块后,在主菜单下将出现库存资料维护、入库、出库、库存查询、仓库资料维护、业务类型维护、货物单位资料维护几个子菜单。左方出现“存货管理模块的树状结构的库存分类信息。右边会出现库存列表,当没有选择库存分类的时候,库存资料列表将显示所有库存工程,按录入时间排序;在选择某个分类的时候,将显示该分类下的库存列表,库存列表会把当前的库存数量显示出来,点击某库存的链接将显示库存工程的详细信息。此模块包含以下主要功能:新

28、增分类; 修改分类; 删除分类; 新增存货工程; 修改存货资料; 删除存货资料; 库存查询; 入库登记; 出库登记; 查询存货收发记录; 仓库资料维护; 业务类型资料维护; 货物单位资料维护。=原文出自【比特网】,转载请保存原文链接:频流。对用户界面进行了改进并增强了对智能标记的支持,可以更加便捷地查看和创立高品质的演示文稿一套完整的PPT文件一般包含:片头动画、PPT封面、前言、目录、过渡页、图表页、图片页、文字页、封底、片尾动画等;所采用的素材有:文字、图片、图表、动画、声音、影片等;国际领先的PPT设计公司有:themegallery、poweredtemplates、presentationload等;近年来,中国的PPT应用水平逐步提高,应用领域越来越广;PPT正成为人们工作生活的重要组成局部,在工作汇报、企业宣传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论