【前言】
面向对象的软件开发是一种新的软件工程方法,所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
【面向对象】
1.定义:
Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”。
2.对象:
是面向对象开发模式的基本成份。对象由属性和方法组成,每个对象都存在一定的状态和内部标识,对象将它自身的属性集操作“包装”起来,成为封装。
3.类:
一组具有相同数据结构和相同操作的对象的集合。比如车可以分为汽车,轿车,火车,都是车这就是类
4.继承:
是使用已存在的定义做为基础建立新定义的技术。比如你爸是皇帝,你也是,子承父业。
5.多态性:
是指相同的操作、函数、过程作用于不同的对象上并获得不同的结果,即相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中所定义的操作去执行,从而产生不同的结果。
比如水果类的颜色,每个水果的颜色不同,这就是多态。颜色就是接口。
主要特点:
1.按照人类习惯的思维方法,对软件开发过程所有阶段进行综合考虑
2.软件生存周期各阶段所使用的方法、技术具有高度的连续性
3.软件开发各阶段有机集成,有利于系统的稳定性
4.具有良好的重用性
【开发过程】
面向对象的开发过程中,生存期的各个阶段所开发出来额“部件”都是类。在面向对象生存期的各个阶段对各个类的信心进行细化,类成为分析设计和实现的基本单元。
1.论域分析
开发问题论域的模型。
考察问题论域内一个较宽的范围,分析覆盖的范围应比直接要解决的问题更多。
建立大致的系统实现环境。
2.应用分析
应用分析则根据特定应用的需求进行论域分析。应用分析细化在论域分析阶段所开发出来的信息,把注意力集中于当前要解决的问题。
3.求精和维护
这是一个在软件生存期中最花费时间的部分。
传统的维护活动时针应用的,而求精过程是针对类,针对把类集成在一起的结构。
我们可以标识抽象的抽象,使得集成结构通过一般化增加新的层次。
【面向对象分析】
(OOA)是运用面向对象的方法进行需求分析,它是面向对象方法从编程领域向分析领域延伸的产物,充分体现了面向对象的概念与原则。
一、需求分析中的问题
1.明确问题域和系统责任的困难
问题域是指被开发系统的应用领域,即拟建立系统进行处理的业务范围。系统责任即所开发系统应该具备的职能。
2.需求的不断变化
需求的变化是需求分析过程中遇到的一个严峻问题,应变能力的强弱是衡量一种分析方法优劣的重要标准。
3.充分交流问题
4.考虑复用要求
二、OOA的特点
一个好的分析方法,应该能够有效地解决上述软件需求分析中的问题,OOA在解决这些问题上具有较强的能力。
1.有利于对问题域及系统责任的理解
2.对需求变化有较强的适应性
3.有利于人员之间的交流
4.支持软件复用
三、基本任务
OOA是软件开发过程中的问题定义阶段,目标是完成对所求解问题的分析,确定系统是“做什么”的,并建立系统的需求分析模型。
运用面向对象的方法,对问题域和系统责任进行分析和理解,找出描述它们的类和对象,定义其属性和操作,以及它们的结构,包括静态联系和动态联系,最终获得一个符合用户需求,并能够反映问题域和系统责任的OOA模型。
【面向对象设计】
(OOD)是面向对象方法的核心阶段。OOA建立的是应用领域面向对象的模型,而OOD建立的则是软件系统的模型。与OOA的模型相比较,OOD模型的抽象层次较低,因为他包含了与具体实现有关的细节,但是建模的原则和方法是相同的。
一、设计准则
1.抽象
抽象是指强调实体的本质、内在的属性,而忽略了一些无关紧要的属性,
2.信息隐蔽
信息隐蔽在面向对象的方法中的具体体现是封装性,封装性是保证软件部件具有优良的模块性的基础。
3.弱耦合
按照抽象与封装性,弱耦合是指子系统之间的联系应该尽量地少。子系统应具有良好的接口,子系统通过接口与系统的其他部分联系。
4.强内聚
它是指子系统内部由一些关系密切的类构成,除了少数的通信类外,子系统中的类应该具有该子系统中的其他类协作,构成具有强内聚性的子系统。
5.可重用
二、基本任务
面向对象的设计是面向对象方法在软件设计阶段应用于扩展的结果,是将OOA所创建的分析模型转换为设计模型,解决系统“如何做”的问题。
面向对象设计的主要目标是提高生产率,提高软件质量和可维护性。
【面向对象模型化技术OMT技术】
对象模型化技术分析时收集的信息构造在三种类模型中,即对象模型,功能模型和动态模型。
定义:
功能模型定义“做什么”
动态模型定义“何时做”
对象模型定义”对谁做“。
对象模型 :
是三个模型中最关键的一个,它的作用是描述系统的静态结构,包括类和对象。在OMT中,类与类之间的关系叫关联,关联,有聚合,限定,角色。
动态模型:
系统的控制逻辑,包括两个图状态图和事件追踪图。
状态图:
一个状态和事件的网络,描述动态行为。
功能模型:
功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么序执行。功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。
功能模型中所有的数据流图往往形成一个层次结构。在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。数据流图中允许加入控制流,但这样做将与动态模型重复,不提倡夹带控制流。 |