软件工程_面向对象方法学.pptVIP

  • 15
  • 0
  • 约 91页
  • 2017-08-24 发布于安徽
  • 举报
第九章 面向对象方法学引论 (Object - Oriented Methodology) §1 面向对象方法学概述 1、瀑布模型的缺点:僵化 瀑布模型要求:生命周期各阶段间遵守严格的顺序。 实际情况是:软件开发往往在反复实践中完成。 瀑布模型要求:预先定义并“冻结”软件需求。 实际情况是:某些系统的需求是一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时。 §1面向对象方法学概述 ● 本质上是功能分解,以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。 ●系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。 ● 数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差. OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。 ? Class:由特殊到一般的归纳(induction) ? Inheritance:由一般到特殊的演绎(deduction) 稳定性好:软件功能需求的变化不牵动全局,只需局部修改; Class 独立性强:只要修改不涉及class的对外接口,则内部修改完全不影响外部调用; Inheritance和多态性(polymorphism)使其很容易被修改和扩充; 容易理解; 4 喷泉模型 迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。 使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。 早期阶段定义了一系列面向问题的对象,并且在整个开发过程中不断充实和扩充这些对象。 整个开发过程中都使用统一的软件概念“对象”,所有其他概念(例如功能、关系、事件等)都是围绕对象组成的,分析阶段得到的对象模型也适用于设计阶段和实现阶段。 各个开发步骤的多次反复迭代,达到认识的逐步深化。 每次反复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动,这样就减少了不一致性,降低了出错的可能性。 喷泉模型,是典型的面向对象的软件过程模型。 喷泉模型 “喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。 代表不同阶段的圆圈相互重叠,这明确表示两个活动之间存在交迭; 用面向对象方法开发软件时,在分析、设计和编码等项开发活动之间并不存在明显的边界。 在一个阶段内的向下箭头代表该阶段内的迭代(或求精)。图中较小的圆圈代表维护,圆圈较小象征着采用了面向对象范型之后维护时间缩短了。 为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程(例如,快速原型模型或图9.1中的中心垂线)作为总目标。 面向对象范型本身要求经常对开发活动进行迭代或求精。 3、实例(Instance):某个class描述的具体对象; 4、消息(Message): object_ID. method_ID (parameter(s)); 5、方法(Method): object能做的操作,亦称为服务、响应, 在 class 中须定义相应的代码; 6、属性(Attribute) :object 的固有数据; 特点: ① 若杭州人的 methods中有与中国人的同名,则李士执行该 method 时以杭州人为准,不执行中国人中定义的同名 method。 注意:multiple inheritance 在定义中应避免二义性(ambiguity),即二个父类中定义重名,但各具不同性质。 ⑵ Operator overloading : 同一运算符 (operator)作用于不同类型的操作数 (operand) 上面。 在用例图中用直线连接行为者和用例,表示两者之间交换信息,称为通信联系。 行为者触发(激活)用例,并与用例交换信息。单个行为者可与多个用例联系;反之,一个用例也可与多个行为者联系。 对于同一个用例而言,不同行为者起的作用也不同。可以把行为者分成主行为者和副行为者,还可分成主动行为者和被动行为者。 4. 用例之间的关系 UML用例之间主要有扩展和使用两种关系,它们是泛化关系的两种不同形式。 (1) 扩展关系 向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。 可以修改售货用例,使之既能提供售罐装饮料的常规动作又能提供售散装饮料的非常规动作

文档评论(0)

1亿VIP精品文档

相关文档