- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 面向对象的软件工程简介
传统软件工程方法存在的问题
软件工程提出至今,并没有从根本上解决软件开发问题,软件危机现象依然存在。就其原因:主要是随着软件应用范围的扩大,软件问题越来越复杂,但也有传统软件工程本身存在的问题,表现在:
预定义需求的假设是不现实的:需求是模糊的、变化的;需求的沟通是困难的。
结构化分析和设计方法存在的问题:需求以功能为基础,分析和设计以过程为基础。
思维方式(认识、分析问题的思想方法)与人们平常的习惯不一致。
为了解决这一问题,软件工程有了新的发展:快速原型法和面向对象法。下面只介绍面向对象的软件工程方法。
面向对象的软件工程方法简介
基本思想:
使软件开发的过程、方法和思想与现实问题的结构以及人类认识和解决问题的方法相一致。
要点:
认为客观世界是由各种对象组成的
所有对象都划分成各种对象类
自然界中的所有类组成类的层次结构
对象之间通过消息相互联系
面向对象 = 对象 + 类 + 继承 + 通讯
软件开发的优点:
与人类习惯的思维方式一致
稳定性好:传统方法基于功能的分析和分解,功能的变化常常会引起软件系统结构的变化。而在OO方法中,功能的变化往往采用从已有类派生出新的子类的方法以实现功能的扩充和修改。
可重用性好:对象和类都是可重用的软件“预制件”,通过参数化和实例化增加重用性。
可维护性好:独立性好,稳定、易于修改、修改造成的影响小、易于理解。
基本概念:
对象:是现实中任何可以明确界定和区别的事物或其抽象的实体和概念。
Object = ID,MS,DS,MI
其中:ID:标识;MS:操作集合;DS:数据结构;MI:消息集合
类:一组对象共同属性(数据和操作)的抽象。
实例:一个具体的个体。
消息:对象操作的具体调用说明。
方法:操作的具体算法。
属性:描述对象特性的数据。
继承:子类自动共享父类中定义的数据和方法的机制。
对象之间的关系:ISA(抽象),PART – OF(聚合),关联(除此之外)。
多态性:类层次中不同对象对同一消息的响应方式不同的机制(不同动物对“叫”不同响应)。
重载:函数重载:同一作用域内若干参数特征不同的函数可以使用相同的函数名
运算符重载:同一运算符可以施加于不同类的操作数上。
几种主要的面向对象的软件工程方法的概况
Coad/Yourdon :OOA/OOD方法;
OOA的过程和步骤:标识对象,标识结构,标识主题,定义属性,定义服务。
OOD设计:系统设计和对象设计
系统设计:人机交互部分;问题域部分;任务管理部分;数据管理部分
对象设计:关联设计;服务设计
Booch方法;
基于四个主图和两个辅图;
主图:类图(类及其关系:P24),对象图(对象和对象间消息),模块图(实现类和对象的程序构件:P24)和进程图(分布环境下,进程与CPU及硬件的关系:P25)
辅图:状态图(描述一个类的状态变化和变化条件:P25),时序图(对象交互的时间特性:P26)
方法的过程和步骤:P26
Rambough:OMT方法(对象模型技术,也叫三视点技术);
基于三个模型:对象模型;动态模型和功能模型。
(对象模型技术:OMT,也叫三视点技术)
对象模型:表示问题域中的对象和类的组成以及它们之间的关系。
类 对象(加虚框)
对象与对象之间的关系有:归纳(ISA);组合(Part of);其它关联关系(数量、关联性质:用链属性、用限定以及消息关联等)。它们的含义和表示方法此处略。
具体表示方法与书上P277有一点差异。
动态模型:对所有对象由于受外来事件的影响而产生的行为和状态变化的抽象表示。表示形式:状态图(具体形式略)。
事件(操作):表示某个特定时刻所发生的事情,它瞬间完成。
状态:表示对象在生命期中某个特定阶段所处的某种形态,用对象属性的一组取值表示,它是持续性的。
行为(活动):对象达到某种状态时所做的一系列处理操作。
功能模型:表示系统所完成的“功能”,用DFD来表示。
三个模型的关系:对象模型表示是谁,动态模型表示了在什么时候、什么情况下,功能模型表示做了什么,完成了什么功能。
Jacboson:OOSE方法
主要通过建立五个模型来完成系统的开发,这五个模型是:
需求模型(RM):主要包括用例图(Use Case,是OOSE的核心),问题域对象模型以及人与系统接口界面。
分析模型(AM):通过定义实体对象、界面对象和控制对象来描述系统的逻辑关系,建立问题域对象与AM中三个对象之间的关系。
设计模型(DM):考虑AM在真实环境中的实现,并表现一个个
文档评论(0)