第07讲_类与类图(软件工程)

第07讲_类与类图(软件工程)

ID:5905570

大小:3.17 MB

页数:37页

时间:2017-11-16

第07讲_类与类图(软件工程)_第1页
第07讲_类与类图(软件工程)_第2页
第07讲_类与类图(软件工程)_第3页
第07讲_类与类图(软件工程)_第4页
第07讲_类与类图(软件工程)_第5页
资源描述:

《第07讲_类与类图(软件工程)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、类与类图回顾用例规约:用例的文字描述,用例的核心进行用例阐述成功场景(正常事件流的描述)扩展场景(备选事件流)约束等需要解决的问题类图概要类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象类图举例类图中的事物及解释从上到下分为三部分,分别是类名、属性和操作。类名是必须有的类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省

2、值和操作的返回值的类型等可见性-代表private+代表public#代表protected也可以使用图形表示返回值类型操作名称斜体为抽象操作缺省值类名斜体为抽象类属性名称参数列表举例Employee+employeeID:Integer-Employeename:String….+setEmployeeDetails()+getEmployeeDetails()-setSalary(salary:Float)#getSalary():Float….举例WashingMachineBrandnameModelnameSerialnumberCapacityAddclothes()Adddete

3、rgent()Removeclothes()Takedirtyclothesasinputandproducecleanclothesasoutput类名类的属性类的操作类的职责职责指类承担的责任和义务。在矩形框中最后一栏中写明类的职责。斜体为抽象类类图中的事物及解释接口:一组操作的集合,只有操作的声明而没有实现抽象类:不能被实例化的类,一般至少包含一个抽象操作模版类:一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类(标准图形)(变体图形)接口抽象类模版参数模版类类图中的关系及解释(1)关联关系描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关联关系

4、语义较弱。也有两种语义较强,分别是聚合与组合UML表示法角色类的角色是“事物“多重性(用数字和*表示)1…*:1个或多个1个类图有1个或多个类1个类属于1个或多个类图方向双向关联(省略箭头)名字关系的名字是“使用”实例不带箭头也可以举例ManagerCompanyWorksForManagerCompanyEmployeeEmployerFourWheeledVehicleDoor14聚合关系:特殊关联关系,指明一个聚集(整体)和组成部分之间的关系组合关系:语义更强的聚合,部分和整体具有相同的生命周期UML表示法UML表示法(空心菱形)实例类图包含有事物和关系,类图不存在了,事物和关系还可用于

5、其它的类图(实心菱形)实例类与关联关系之间有组合关系,类不存在了,则相应的关联关系也不存在聚合举例FourWheeledVehicleDoor14SeatWheel42..5组合举例BuildingBulidingnameNumberofFloorssetName()setNumberofFloors()FloorfloorNumberNumberofRoomsgetFloorNumber()getNumberofRooms()RoomroomNumberroomLocationgetRoomNumber()getRoomLocation()112118类图中的关系及解释(2)泛化关系在面向对

6、象中一般称为继承关系,存在于父类与子类、父接口与子接口之间UML表示法关联、泛化、实现、依赖都是一种关系类、接口都是一种事物泛化举例EmployeeClericalStaffSoftwareEngineerManagerSalesManagerProductionManager类图中的关系及解释(3)实现关系对应于类和接口之间的关系UML表示法类Circle、Rectangle实现了接口Shape的操作类图中的关系及解释(4)依赖关系描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式,例如绑定(bind)、友元(friend)等UML表示法模板类Stack定义了栈相关的操作;

7、IntStack将参数T与实际类型int绑定,使得所有操作都针对int类型的数据类Memento和类Originator建立了友元依赖关系,以便Originator使用Memento的私有变量state依赖关系类图与代码的映射C++代码classVehicle{public:virtualintStart()=0;virtualintStop()=0;virtualintRun(floatfSpe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。