第07讲 类与类图(软件工程)ppt课件.ppt

上传人:小飞机 文档编号:2132727 上传时间:2023-01-15 格式:PPT 页数:37 大小:3.17MB
返回 下载 相关 举报
第07讲 类与类图(软件工程)ppt课件.ppt_第1页
第1页 / 共37页
第07讲 类与类图(软件工程)ppt课件.ppt_第2页
第2页 / 共37页
第07讲 类与类图(软件工程)ppt课件.ppt_第3页
第3页 / 共37页
第07讲 类与类图(软件工程)ppt课件.ppt_第4页
第4页 / 共37页
第07讲 类与类图(软件工程)ppt课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《第07讲 类与类图(软件工程)ppt课件.ppt》由会员分享,可在线阅读,更多相关《第07讲 类与类图(软件工程)ppt课件.ppt(37页珍藏版)》请在三一办公上搜索。

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

2、类型、参数缺省值和操作的返回值的类型等,举例,举例,职责指类承担的责任和义务。在矩形框中最后一栏中写明类的职责。,斜体为抽象类,类图中的事物及解释,接口:一组操作的集合,只有操作的声明而没有实现抽象类:不能被实例化的类,一般至少包含一个抽象操作模版类:一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类,抽象类,类图中的关系及解释,(1)关联关系描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合与组合,不带箭头也可以,举例,聚合关系:特殊关联关系,指明一个聚集(整体)和组成部分之间的关系组合关系:语义更强的聚

3、合,部分和整体具有相同的生命周期,聚合举例,组合举例,类图中的关系及解释,(2)泛化关系在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间,UML表示法,关联、泛化、实现、依赖都是一种关系,类、接口都是一种事物,泛化举例,类图中的关系及解释,(3)实现关系对应于类和接口之间的关系,UML表示法,类Circle、Rectangle实现了接口Shape的操作,类图中的关系及解释,(4)依赖关系描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式,例如绑定(bind)、友元(friend)等,UML表示法,模板类Stack定义了栈相关的操作;IntStack将参数T与实际类

4、型int绑定,使得所有操作都针对int类型的数据,类Memento和类Originator建立了友元依赖关系,以便Originator使用Memento的私有变量state,依赖关系,类图与代码的映射,C+代码class Vehiclepublic:virtual int Start()=0;virtual int Stop()=0;virtual int Run(float fSpeed)=0;private:float fMaxSpeed;,Java代码public abstract class Vehicle public abstract int Start();public abst

5、ract int Stop();public abstract int Run(float fSpeed);private float fMaxSpeed;,关联关系的映射,C+代码class Dialog private:Button btnOK;Button btnCancel;TextBox txtInfo;class Button;class TextBox;,组合关系,代码表现为Dialog的属性有Button和TextBox的对象,泛化关系的映射,Java代码public class SavingsAccount extends Account,C+代码class SavingsA

6、ccount:public Account;,实现关系的映射,C+代码class Shape public:virtual void Draw()=0;class Circle:public Shapepublic:void Draw();private;Point ptCenter;int nRadius;,Java代码public interface Shape public abstract void Draw();public class Circle implements Shapepublic void Draw();private Point ptCenter;private i

7、nt nRadius;,在C+语言里面,使用抽象类代替接口,使用泛化关系代替实现关系在Java语言里面,有相应的关键字interface、implements,依赖关系的映射,绑定依赖,C+代码templateclass Stack private:int size;public:int Push(T elem);int Pop();const T,C+代码(编译器生成)class FloatStack private:int size;public:int Push(float elem);int Pop();const float,如何建立类图,分析问题域,确定需求;寻找类,确定类的含义和

8、职责;定义类的属性和操作;确定类之间的关系;精化类和类间的关系;绘制类图。,寻找类的方法(1),使用名词/动词寻找类:收集相关信息补充的需求规格说明用例项目说明文档其他文档分析信息名词、名词短语 类或属性动词、动词短语 操作,寻找类的方法(2),使用CRC分析法寻找类:C-class(类)R-responsibility(职责)C-collaboration(协作)CRC分析法是根据类所要扮演的职责来确定类。脑力风暴收集信息。关键业务用类表示,其它卡片作为属性。,案例,李小平是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信

9、息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计。,发现类,李小平是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建

10、就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计。,筛选备选类,“李小平”、“人”、“家里”很明显是系统外的概念,无须对其建模;而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模;很明显“书籍”是一个很重要的类,而“书名”、“作者”、“类别”、“出版社”、“书号”则都是用来描述书籍的基本信息的,因此应该作为“书籍”类的属性处理,而“规则”是指书号的生成规则,而书号则是书籍的一个属性,因此“规则”可以作为编写“书籍”类构造函数的指南。“基本信息”则是书名、作者、类别等描述

11、书籍的基本信息统称,“关键字”则是代表其中之一,因此无需对其建模;“功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;,筛选修选类,“计算机类”、“非计算机类”是该系统中图书的两大分类,因此应该对其建模,并改名为“计算机类书籍”和“非计算机类书籍”,以减少歧义;“外借情况”则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成“外借情况列表”,而外借情况中一个很重要的角色是“朋友”借阅主体。虽然到本系统中并不需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述

12、,将“外借情况”改名为“借阅记录”,而将“外借情况列表”改名为“借阅记录列表”;“购买金额”、“册数”都是统计的结果,都是一个数字,因此不用将其建模,而“特定时限”则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类书籍列表,也就是执行统计的主体。,得到候选类,在使用“名词动词法”寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字,关联分析建模,多重性分析建模,职责分析,书籍类:从需求描述中,可找到书名、类别、作者、出版社;同时从统计的需要中,可得知“定价”也是一个关键的成员变量。书籍列表类:书籍列表就是全部的藏书列表,其主要的成员方法是新增、修改、查询(按关键字查询)、统计(按特定时限统计册数与金额)。借阅记录类:借阅人(朋友)、借阅时间。借阅记录列表类:主要职责就是添加记录(借出)、删除记录(归还)以及打印借阅记录,小结,类设计类类的关系,实验08,主要用例的设计类(属性和方法)设计类图(类之间的关系),谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号