软件工程——面向对象技术

简介: 软件工程——面向对象技术

什么是面向对象?


· Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”

· 如果一个软件系统是使用这样4个概念设计和实现的,则我们认为这个软件系统是面向对象的。

· 面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。


· 面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。


面向对象的三大模型


一、对象模型化技术OMT


· 对象模型化技术把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。


· 这个模型化的过程是一个迭代过程。


1、关联


· 在OMT中,类与类之间的关系叫做关联。


关联形式:


(1)聚合,代表整体与部分的关系,这是一种特殊形式的关联。


(2)限定,用以对关联的含义做某种约束。


(3)角色,用来说明关联的一端,由于多数关联具有两个端点,因而涉及到两个角色。


2、类和对象的关系:



二、动态模型


· 动态模型着重于系统的控制逻辑。

· 它包括两个图,一是状态图,一是事件追踪图

(1)状态图

· 状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。



动态模型由多个状态图组成


· 各个状态图并发地执行,并可以独立地改变状态


(2)事件追踪图


事件


· 一个事件发生在某一个时刻


· 每个事件都是单独发生的


· 我们建立事件类,并给每个事件一个名字,以指明共同结构和行为


· 事件从一个对象向另一个对象传送信息。


事件追踪图


· 事件追踪图


· 事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”


· 场景也叫做脚本,是完成系统某个功能的一个事件序列


(3)状态图与事件追踪图的关系


· 状态图叙述一个对象的个体行为,事件追踪图则则给出多个对象所表现出来的集体行为。


· 例如,一个事件追踪图指出某一对象在接受一个事件之后发出另一事件,同一行为在此对象的状态图中也应当有所表示。


三、功能模型


· 功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。


· 功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,知道外部输出,这整个的数据流情况。


· 功能模型中所有的数据流图往往形成一个层次结构。


· 在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。


· 数据流图中允许加入控制流,但这样做将与动态模型重复,不提倡夹带控制流。



四、基于三大模型的分析过程


· 功能模型着重于系统内部数据的传送和处理。

       功能模型定义“做什么”

       动态模型定义“何时做”

       对象模型定义“对谁做”

目录
相关文章
|
12月前
|
敏捷开发 算法 数据建模
『软件工程2』详解软件工程和软件过程模型
该文章深入解析了软件工程的概念及其过程模型,包括软件生命周期的不同阶段和常见的软件开发模型如瀑布模型、敏捷开发等,并探讨了各自的特点与适用场景。
『软件工程2』详解软件工程和软件过程模型
素颜简约的个人导航网站源码
素颜简约的个人导航网站源码
1032 0
素颜简约的个人导航网站源码
|
12月前
|
机器学习/深度学习 监控 项目管理
『软件工程4』一文了解软件项目管理中的4P
该文章讲述了软件项目管理中的四个关键要素(4P:People、Product、Process、Project)的重要性及如何在实践中应用这些要素来提高项目管理的有效性。
『软件工程4』一文了解软件项目管理中的4P
|
Linux Windows
Installing, this may take a few minutes...WslRegisterDistribution failed with error: 0x80370114Err
Installing, this may take a few minutes...WslRegisterDistribution failed with error: 0x80370114Err
2702 3
|
算法 IDE 关系型数据库
Machine Learning-L13-频繁模式挖掘
Machine Learning-L13-频繁模式挖掘
Machine Learning-L13-频繁模式挖掘
|
JavaScript 前端开发 算法
深入理解虚拟DOM:原理、优势与实践
深入理解虚拟DOM:原理、优势与实践
1300 0
|
设计模式 测试技术 开发工具
【软件设计师备考 专题 】软件工程基础:理解软件开发生命周期
【软件设计师备考 专题 】软件工程基础:理解软件开发生命周期
304 0
|
NoSQL 关系型数据库 Redis
Redis事务:保障数据一致性和原子性的简单机制
事务是一种用于确保数据操作的一致性和原子性的重要机制。在Redis中,虽然事务支持并不像传统关系型数据库中那样复杂,但它提供了一种简单的事务支持,称为MULTI/EXEC事务。本文将深入探讨Redis事务的实现原理、特性和适用场景,帮助开发者了解如何在Redis中充分利用事务来保障数据的完整性和正确性。
686 0
|
机器学习/深度学习 存储 算法
数据分类分级-结构化数据识别与分类的算法实践
本文分享了用九智汇数据分类分级产品开发过程中,对数据识别和数据分类中涉及的算法进行抽象、融合,以形成标准化产品所做的努力和积累的经验。当然,算法只是分类分级产品的一小部分,整个产品设计,工程实现,也是支撑标准化产品的关键,但是限于作者水平有限,本文只讨论算法相关的话题,欢迎大家关注公众号以了解更多信息。
301 1
|
前端开发 JavaScript Java
前端开发领域的细分领域与特点
前端开发领域是一个广泛而多样的领域,包括了许多具体的细分领域。本文将介绍前端领域的细分领域,包括Web前端、移动端、桌面端、游戏端和VR/AR前端等,并分析它们各自的特点,以帮助读者更好地了解前端开发的多样性。
406 0