预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共231页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

高级软件工程面向对象方法什么是面向对象(ObjectOriented,OO)?面向对象技术的基本观点面向对象技术的发展历史面向对象方法的优点面向对象的基本概念面向对象的基本概念2.类(class)类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。封装(encapsulation):一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的:使对象的使用者和生产者分离,使对象的定义和实现分开。继承(inheritance):继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。矩形长宽对角线计算面积计算对角线如果一个子类只有唯一一个父类,这个继承称为单一继承。如果一个子类有一个以上的父类,这种继承称为多重继承。多态性(polymorphism)指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。if条件thenp:=t;elsep:=r;area:=p.getarea;面向对象的软件工程喷泉模型面向对象分析面向对象设计代表性的OO分析与设计方法面向对象的建模语言——UMLUML是什么?UML的主要组成UML中的视图(View)UML中的图(Diagram)视图与图模型元素模型元素指模型中的实体以及实体间相互连接的关系UML2.0与1.4的比较简单的UML例子HelloWorld的UML图HelloWorld的UML图(续)基于UML的分析、设计和实现一、用例模型和用例图现代需求实践需求获取用例1)分析员首先标识使用该系统的不同的执行者(执行者,actor),这些执行者代表使用该系统的不同的角色。每个执行者可以叙述他如何使用系统,或者说他需要系统提供什么功能2)执行者提出的每一个使用场景都是系统的一个用例的实例,一个用例描述了系统的一种用法(或一个功能),所有执行者提出的所有用例构成系统的完整的需求注:执行者与用户是不同的两个概念,一个用户可以扮演几个角色(执行者);一个执行者可以是用户,也可以是其他系统(应用程序或设备)需求获取的活动用例图执行者执行者的种类执行者的例子执行者间的关系如何标识执行者例子:学生注册课程系统发现执行者用例用例的特征用例图举例用例的命名学生注册课程系统中的用例如何标识用例注意事项(1)注意事项(2)标识用例图中的关系关联关系包含关系包含关系注意:箭头方向为客户用例到提供者用例.a.如果有多个用例,并且这些用例包含大量类似的行为,应该考虑将这些类似的行为通过包含关系包含到用例中,将这个功能分解到另一个用例中b.对两个或多个互相独立的用例建模时做了重复的工作,可以通过包含关系包含这些重复的工作c.如果某个行为可能会引入冗余,或者,当行为发生变化时可能导致不一致性,这时,应该对这种行为进行孤立建模并将它包含到用例中扩展关系a.两个用例相似但不完全相同时b.当要对多个额外情况逐一建模时,可以使用扩展关系,用一个独立的用例替代每个额外的情况c.如果用例涵盖了所有的情况变化,则该用例将会变得十分复杂,应该考虑使用扩展关系基本用例(扩展关系中)泛化关系泛化关系的例子用例图举例“扩展”与“包含”的区别(1/2)“扩展”与“包含”的区别(2/2)扩展关系中,基用例可以单独存在,但在一定的条件下,它的行为可以被另一个用例的行为延伸。扩展只能发生在基用例的序列中某个特定的点上,这个点叫扩展点扩展关系的基本含义与泛化关系类似,但对扩展用例有更多限制,即基本用例必须声明若干”扩展点”,扩展用例只能在扩展点上增加行为和含义.用例图的绘制流程记录需求—特性表合并需求获得用例用例分析的基本步骤用例的描述(1/2)用例的描述(2/2)用例图的描述用例的详细描述用例通常用正文来描述,也可用活动图来描述。用例的正文描述应包括以下内容:用例的目的:用例的最终目的是什么?它试图达到什么?用例是如何启动的:哪个执行者在什么情况下启动用例的执行?执行者和用例之间的事件流:用例与执行者之间交换什么消息或事件来通知对方改变或恢复信息?描述系统与执行者之间的主事件流是什么?以及系统中哪些实体被使用或修改?用例中可供选择的流:用例中的活动可根据条件或异常(exception)有选择地执行。如何结束用